k8s集群配置ServiceMonitor不生效
现象
配置完类型为 ServiceMonitor 的 CRD 并应用后,并未采集到期望的指标数据。
排查
查看 Prometheus Web UI 的 Targets 页面,可以看到 ServiceMonitor 配置的目标服务没有出现在面板中,确认应为配置问题。
检查项
1 |
|
首先需要检查 matchLabels 中的标签是否正确,大多数情况是因为标签无法匹配导致的,可以使用 kubectl get svc -n monitor -l app=test-app 查看是否有对应的服务。
其次,检查 endpoints 中的 path 和 port 是否正确,path 应为 Prometheus 采集的指标路径,port 应为 ServiceMonitor 定义的端口名称,需要和 Service 的 port 名称保持一致。注意 port 参数是要和 service 中配置的 name 保持一致,而不是 targetPort,当初我就是因为这个地方配置错误排查了很久没有发现。
k8s集群配置ServiceMonitor不生效
https://www.wobushi.top/2024/k8s集群配置ServiceMonitor不生效/