第 6 章 监控问题的故障排除
查找用户定义的项目监控中常见问题的故障排除步骤。
6.1. 确定为什么用户定义的项目指标不可用 复制链接链接已复制到粘贴板!
如果在监控用户定义的项目时没有显示指标,请按照以下步骤排除此问题。
流程
查询指标名称,并验证项目是否正确:
- 在 web 控制台的 Developer 视角中,点 Observe 并进入 Metrics 选项卡。
- 在 Project: 列表中选择您要查看指标的项目。
从 Select query 列表中选择现有查询,或通过在 Expression 字段中添加 PromQL 查询来运行自定义查询。
指标显示在图表中。
查询需要基于每个项目。显示的指标与您选择的项目相关。
验证您要来自的 pod 是否活跃提供指标。在一个 pod 中运行以下
oc exec命令,以podIP、port, and/metrics为目标。oc exec <sample_pod> -n <sample_namespace> -- curl <target_pod_IP>:<port>/metrics
$ oc exec <sample_pod> -n <sample_namespace> -- curl <target_pod_IP>:<port>/metricsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您必须在安装了
curl的 pod 上运行命令。以下示例输出显示了具有有效版本指标的结果。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 无效的输出表示对应应用程序存在问题。
-
如果使用
PodMonitorCRD,请验证PodMonitorCRD 是否已配置为使用标签匹配指向正确的 pod。如需更多信息,请参阅 Prometheus Operator 文档。 如果您使用
ServiceMonitorCRD,如果 pod 的/metrics端点显示指标数据,请按照以下步骤验证配置:验证该服务是否已指向正确的
/metrics端点。输出中的服务标签必须与服务监控标签和后续步骤中服务定义的/metrics端点匹配。oc get service
$ oc get serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查询
serviceIP、port和/metrics端点,以查看前面在 pod 上运行的curl命令中的相同指标:运行以下命令来查找服务 IP:
oc get service -n <target_namespace>
$ oc get service -n <target_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查询
/metrics端点:oc exec <sample_pod> -n <sample_namespace> -- curl <service_IP>:<port>/metrics
$ oc exec <sample_pod> -n <sample_namespace> -- curl <service_IP>:<port>/metricsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下示例中返回有效指标。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用标签匹配来验证
ServiceMonitor对象是否已配置为指向所需服务。为此,将oc get service输出中的Service对象与oc get servicemonitor中输出的ServiceMonitor对象进行比较。标签必须与要显示的指标匹配。例如,在前面的步骤中,注意
Service对象如何具有app: prometheus-example-app标签,而ServiceMonitor对象具有相同的app: prometheus-example-app匹配标签。
- 如果一切都有效且指标仍不可用,请联系支持团队以获得进一步的帮助。