第 13 章 监控问题的故障排除
查找用户定义的项目监控中常见问题的故障排除步骤。
13.1. 确定为什么用户定义的项目指标不可用 复制链接链接已复制到粘贴板!
如果在监控用户定义的项目时没有显示指标,请按照以下步骤排除此问题。
流程
查询指标名称,并验证项目是否正确:
-
从 web 控制台中的 Developer 视角,选择 Observe
Metrics。 - 在 Project: 列表中选择您要查看指标的项目。
从 Select query 列表中选择查询,或通过选择 Show PromQL 运行自定义 PromQL 查询。
指标显示在图表中。
查询需要基于每个项目。显示的指标与您选择的项目相关。
-
从 web 控制台中的 Developer 视角,选择 Observe
验证您要来自的 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>/metrics
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您必须在安装了
curl
的 pod 上运行命令。以下示例输出显示了具有有效版本指标的结果。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 无效的输出表示对应应用程序存在问题。
-
如果使用
PodMonitor
CRD,请验证PodMonitor
CRD 是否已配置为使用标签匹配指向正确的 pod。如需更多信息,请参阅 Prometheus Operator 文档。 如果您使用
ServiceMonitor
CRD,如果 pod 的/metrics
端点显示指标数据,请按照以下步骤验证配置:验证该服务是否已指向正确的
/metrics
端点。输出中的服务标签
必须与服务监控标签
和后续步骤中服务定义的/metrics
端点匹配。oc get service
$ oc get service
Copy 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>/metrics
Copy 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
匹配标签。
- 如果一切都有效且指标仍不可用,请联系支持团队以获得进一步的帮助。