最近更新时间:2023.08.25 15:05:03
首次发布时间:2023.05.15 15:53:28
托管 Prometheus 服务支持通过 ServiceMonitor 或 PodMonitor 来进行服务发现。但是,有时候当您完成配置后,却无法正确查看到采集到的指标。本文为您介绍如何进行服务发现配置的故障排除。
在托管 Prometheus 服务中配置了 ServiceMonitor 或 PodMonitor 后,并未采集到期望的指标数据。
造成您无法查看到期望指标的可能原因有:
整体排障流程如下图所示。其中,Target、Exporter 端口均为示例。
查询指标时,请首先确认您使用的查询语句正确。错误的查询语句会导致查询出的指标错误,或者干脆查询不出任何结果。
查询语句的使用方法,请参见 PromQL 基本用法。
说明
请确保您已经正确配置了 ServiceMonitor 或 PodMonitor,配置的详细步骤,请参见 服务发现。
...
> 编辑 Yaml,检查 PodMonitor 或 ServiceMonitor 的配置是否正确。namespaceSelector
字段选择的命名空间和 selector
字段选择的标签,与 Service 或 Pod 的配置是否相同。
namespaceSelector: matchNames: - kube-system # 重点检查此处配置的命名空间,是否与 Service/Pod 所在的命名空间一致 selector: matchLabels: app.kubernetes.io/name: dcgm-exporter # 重点检查此处配置的 Label 名和值,是否与 Service/Pod 配置的一致
您可以采用如下步骤,确定采集器是否正确发现 Target 且正常采集:
up{job="xxxx"}
,查看对应的服务是否被正确发现。您可以采用如下步骤,确认 Target 中确实存在您需要的指标:
kubectl port-forward pod/rabbitmq-exporter-5fxxxx 9419:9419 -n volcano-metrics
说明
curl http://target-ip:port/metrics
的方式访问到采集对象。rabbitmq-exporter-5fxxxx
为采集对象的实例名称,本例中以 RabbitMQ-Exporter 为例,您需要在实际操作中替换成您的采集对象的实例名称。9419
为该采集对象暴露指标的端口号。不同采集对象的端口号不同,您需要在实际操作中替换成正确的端口号。-n volcano-metrics
为采集对象所在的命名空间,您需要在实际操作中替换成采集对象所在的命名空间。kafka_topic_partitions
等关于 Topic 的指标项。