托管云 Prometheus 监控

托管云 Prometheus 监控

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

本教程介绍使用Prometheus和Grafana监控Qdrant托管云数据库。Qdrant提供两个指标端点:/metrics报告单节点指标,需逐节点抓取;/sys_metrics为云专属,聚合全集群数据库指标及容器CPU、内存、磁盘和负载均衡流量,只需抓取一次。步骤:用Helm安装kube-prometheus-stack;创建Secret存储只读API密钥并配置ScrapeConfig抓取/sys_metrics;获取Grafana密码并端口转发访问;从Qdrant GitHub仓库导入示例仪表板。

🔎

延伸解读

集群指标与节点指标的区别

Qdrant托管云提供两个指标端点:/metrics报告单节点指标,如集合数、点向量数、API响应时间和进程内存,需逐节点抓取;/sys_metrics为云专属,聚合全集群数据库指标及容器CPU、内存、磁盘和负载均衡流量,只需抓取一次。本教程的ScrapeConfig针对/sys_metrics,因此单个抓取任务即可覆盖整个集群。

验证抓取配置是否生效

要确认抓取配置正常工作,可在Prometheus UI或使用curl查询仅由/sys_metrics暴露的指标,例如container_memory_working_set_bytes{job="prometheus"}。若配置正确,将返回每个Pod一个时间序列,并带有pod标签和字节值。可将其与节点级指标memory_resident_bytes对比,理解容器级与进程级内存报告的差异。

监控部署的权限与安全要点

教程使用只读API密钥进行监控认证,并将其存储在Kubernetes Secret中。ScrapeConfig通过Bearer授权引用该Secret,以HTTPS方案抓取Qdrant集群的/sys_metrics端点。这遵循了最小权限原则,避免使用可写密钥,同时确保监控数据的安全传输。

❓

Q&A

Qdrant托管云提供哪些Prometheus指标端点?它们有什么区别?

Qdrant托管云提供两个Prometheus兼容端点:/metrics报告单个Qdrant节点的指标,如集合数、点和向量数、API响应时间以及进程级内存(如memory_resident_bytes),每个节点只报告自身,需要逐节点抓取;/sys_metrics是托管云专属端点,报告整个集群的指标,聚合所有节点的数据库指标以及基础设施遥测数据(如容器CPU和内存使用、磁盘使用和负载均衡器流量),只需对集群主端点抓取一次,无需逐节点抓取。

如何安装Prometheus和Grafana来监控Qdrant?

使用kube-prometheus-stack Helm chart在Kubernetes集群中部署。先添加Helm仓库:helm repo add prometheus-community https://prometheus-community.github.io/helm-charts,然后安装:helm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring --create-namespace。这会将Prometheus、Grafana及所有必要组件安装到新的monitoring命名空间中。

如何配置Prometheus抓取Qdrant的集群指标?

需要创建Kubernetes Secret存储只读API密钥,并创建ScrapeConfig资源。Secret示例:apiVersion: v1, kind: Secret, metadata: name: qdrant-cluster-api-key, namespace: monitoring, stringData: apiKey: "a-read-only-api-key"。ScrapeConfig示例:apiVersion: monitoring.coreos.com/v1alpha1, kind: ScrapeConfig, metadata: name: qdrant-cluster, namespace: monitoring, spec: metricsPath: /sys_metrics, scrapeInterval: 60s, scheme: HTTPS, authorization: type: Bearer, credentials: name: qdrant-cluster-api-key, key: apiKey, staticConfigs: - labels: job: prometheus, targets: - your-cluster.europe-west3-0.gcp.cloud.qdrant.io:443。

如何访问Grafana并导入Qdrant仪表板?

首先获取Grafana admin密码:kubectl --namespace monitoring get secrets prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 -d ; echo。然后端口转发:export POD_NAME=$(kubectl --namespace monitoring get pod -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=prometheus" -oname) 和 kubectl --namespace monitoring port-forward $POD_NAME 3000。在浏览器打开http://localhost:3000,用admin和密码登录。导入仪表板:在Grafana中转到“Dashboards” -> “New” -> “Import”,从Qdrant GitHub仓库复制粘贴仪表板JSON,点击“Load”然后“Import”。

如何验证Prometheus抓取配置是否正常工作?

可以查询一个只有/sys_metrics暴露的指标,例如容器内存使用量:container_memory_working_set_bytes{job="prometheus"}。如果抓取目标配置正确,这将返回集群中每个Pod的一个时间序列,每个序列带有pod标签和字节值。可以将其与节点级等效指标(来自/metrics的memory_resident_bytes)进行比较,以了解容器级和进程级内存报告的区别。

监控Qdrant托管云需要什么前提条件?

需要已经有一个运行中的Kubernetes集群用于部署监控栈,并且在Qdrant托管云中创建了一个Qdrant数据库。此外,还需要配置好kubectl和helm以便与集群交互。

🏷️

标签

➡️

继续阅读