指标管理
平台的监控系统基于 Prometheus / VictoriaMetrics 收集的指标。本文档将指导您如何管理这些指标。
查看平台组件暴露的指标
平台内集群组件的监控方式是通过 ServiceMonitor 抽取暴露的指标。平台中的指标均通过 /metrics 端点公开。您可以使用以下示例命令查看平台中某个组件暴露的指标:
示例输出:
查看 Prometheus / VictoriaMetrics 存储的所有指标
您可以查看集群中可用的指标列表,帮助您基于这些指标编写所需的 PromQL。
前提条件
-
您已获取用户 Token
-
您已获取平台地址
操作步骤
运行以下命令,使用 curl 获取指标列表:
示例输出:
查看平台内置定义的所有指标
为了简化用户使用,平台内置了大量常用指标。您在配置告警或监控面板时可以直接使用这些指标,无需自行定义。以下将介绍如何查看这些指标。
前提条件
-
您已获取用户 Token
-
您已获取平台地址
操作步骤
运行以下命令,使用 curl 获取指标列表:
示例输出:
- 该指标是否支持用于配置告警
- 该指标是否支持用于监控面板
- 该指标是否支持用于配置多资源告警
- 该指标定义的 PromQL 语句
- 该指标 PromQL 语句中可用的变量
集成外部指标
除了平台内置指标外,您还可以通过 ServiceMonitor 或 PodMonitor 集成您的应用或第三方应用暴露的指标。本节以以 Pod 形式安装在同一集群中的 Elasticsearch Exporter 为例进行说明。
前提条件
您已安装应用并通过指定接口暴露指标。本文档假设您的应用安装在 cpaas-system 命名空间,并暴露了 http://<elasticsearch-exporter-ip>:9200/_prometheus/metrics 端点。
操作步骤
-
创建 Service/Endpoint 以供 Exporter 暴露指标
-
创建
ServiceMonitor对象描述应用暴露的指标:- ServiceMonitor 应同步到哪个 Prometheus;operator 会根据 Prometheus CR 的 serviceMonitorSelector 配置监听对应的 ServiceMonitor 资源。如果 ServiceMonitor 的标签不匹配 Prometheus CR 的 serviceMonitorSelector 配置,则该 ServiceMonitor 不会被 operator 监控。
- operator 会根据 Prometheus CR 的 serviceMonitorNamespaceSelector 配置监听哪些命名空间的 ServiceMonitor;如果 ServiceMonitor 不在 Prometheus CR 的 serviceMonitorNamespaceSelector 中,则该 ServiceMonitor 不会被 operator 监控。
- Prometheus 收集的指标会添加一个 job 标签,值为对应 jobLabel 的 service 标签值。
- ServiceMonitor 根据 namespaceSelector 配置匹配对应的 Service。
- ServiceMonitor 根据 selector 配置匹配 Service。
- ServiceMonitor 根据 port 配置匹配 Service 的端口。
- 访问 Exporter 的路径,默认是 /metrics。
- Prometheus 抓取 Exporter 指标的间隔。
- 如果访问 Exporter 路径需要认证,则需添加认证信息;也支持 bearer token、tls 认证等方式。
-
检查 ServiceMonitor 是否被 Prometheus 监控
访问监控组件的 UI,检查是否存在 job
cpaas-elasticsearch-exporter。- Prometheus UI 地址:
https://<Your platform access address>/clusters/<Cluster name>/prometheus-0/targets - VictoriaMetrics UI 地址:
https://<Your platform access address>/clusters/<Cluster name>/vmselect/vmui/?#/metrics
- Prometheus UI 地址: