使用 Prometheus 监控 Config Connector
您可以使用 Prometheus 从 Config Connector 中收集和显示指标。
准备工作
要完成本页面中的步骤,需要在您的集群上安装 Prometheus。为此,您可以执行以下操作:
遵循 Prometheus 文档 配置集群以进行爬取。
抓取指标
Prometheus 通过抓取 HTTP 端点来收集指标。本部分介绍了 Config Connector 如何抓取端点和配置 Prometheus。
Config Connector 抓取端点
对于 Config Connector,服务端点位于 cnrm-controller-manager-service
和 cnrm-resource-stats-recorder-service
的端口 8888 上。这些服务具有 prometheus.io/scrape: "true"
和 prometheus.io/port: "8888"
注释。服务还包括标签 cnrm.cloud.google.com/monitored: "true"
和 cnrm.cloud.google.com/system: "true"
。您可以配置 Prometheus,以从这些注释和标签中抓取 Config Connector 组件。
配置 Prometheus
您可能需要先为 Prometheus 配置 Prometheus,然后才能抓取指标, Kubernetes 服务发现 (SD) 来通过 Kubernetes REST API 发现抓取目标。
配置 Prometheus 以从 Config Connector 抓取指标的方法取决于 Prometheus 的安装方式。检查 Prometheus 安装文档以了解如何更新配置。
例如,如果您正在使用 Prometheus Operator 并为它配置了 ServiceMonitor,则可以应用以下配置以便从 Config Connector 中抓取指标。
spec:
endpoints:
- interval: 10s
port: metrics
namespaceSelector:
matchNames:
- cnrm-system
selector:
matchLabels:
cnrm.cloud.google.com/monitored: "true"
cnrm.cloud.google.com/system: "true"
如需详细了解如何设置 ServiceMonitor,请参阅 开始前须知 了解 Prometheus Operator 文档中的说明。
示例查询
Prometheus 使用一种称为 PromQL 的查询语言。本部分包含 Config Connector 指标的 PromQL 查询示例。您可以配置 Prometheus 以从任何有效的 PromQL 查询中生成警报。
按资源种类和状态来查询协调请求
您可以按资源种类和状态查看协调失败的请求计数。
例如,要检查 PubSubTopic
资源的错误总数,请使用以下查询。
configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}
按种类和命名空间来检查资源的汇总状态
您可以查看命名空间中的资源数量。
例如,如需检查 default
命名空间中 PubSubTopic
资源的总数,请使用以下查询。
configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}
按资源种类来查询协调工作器的利用率
(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)
可用指标
Config Connector 会收集以下指标并使指标可用。
名称 | 类型 | 标签 | 说明 |
---|---|---|---|
configconnector_reconcile_requests_total | 计数器 | 命名空间 group_version_kind 状态 |
协调请求总数。 |
configconnector_reconcile_request_duration_seconds | 直方图 | 命名空间 group_version_kind 状态 |
完成协调请求所需的时间分配。 |
configconnector_applied_resources_total | 采样平均值 | 命名空间 group_version_kind 状态 |
接受管理的资源总数。 |
configconnector_build_info | 采样平均值 | 版本 | Config Connector 的当前版本。 |
configconnector_reconcile_workers_total | 采样平均值 | group_version_kind | 按资源种类汇总的协调工作器总数。 |
configconnector_reconcile_occupied_workers_total | 采样平均值 | group_version_kind | 按资源种类汇总的已占用协调工作器总数。 |
启用资源名称标签
默认情况下,指标是按资源种类(例如 PubSubTopic)进行汇总。您可以启用按各种资源来汇总指标。
要启用按资源名称进行聚合,请执行以下步骤。
修改
cnrm-controller-manager
StatefulSet 对象kubectl edit statefulset cnrm-controller-manager -n cnrm-system
如果您使用的是命名空间模式,请将
NAMESPACE_NAME
替换为您的命名空间。kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
找到数组
spec.args
,然后添加--resource-name-label=true
。apiVersion: apps/v1 kind: StatefulSet name: cnrm-controller-manager spec: template: spec: containers: - name: manager args: - --resource-name-label=true
后续步骤
如需详细了解如何编写查询,请参阅 Prometheus 查询语言文档 和 示例