本指南介绍的是 operator 进程本身 (controller manager) 。对于 ClickHouse server 指标 (查询、parts、复制延迟) ,请使用 ClickHouse 中的 Prometheus 端点 单独进行抓取。
端点
直接运行 operator 二进制文件时,指标端点默认关闭 (
--metrics-bind-address=0) 。Helm 图表会通过 metrics.enable: true 和 metrics.port: 8080 启用它。
健康探针端点始终启用;部署模板会将 /healthz 和 /readyz 配置为该 pod (容器组) 在端口 8081 上的存活探针和就绪探针。
Operator 二进制参数
manager 参数 (定义在 cmd/main.go 中) :
该参数帮助文本中的
8443 (HTTPS) / 8080 (HTTP) 约定仅作提示。Helm 图表会在 8080 上提供 HTTPS,因为它同时设置了 metrics.port: 8080 和 metrics.secure: true。这里不会根据端口检测模式——选择 HTTPS 还是 HTTP 取决于 --metrics-secure。通过 Helm 启用指标
Service,并且还可选择为 prometheus-operator 创建 ServiceMonitor。
指标端点默认已启用 (metrics.enable: true、端口 8080,并通过 metrics.secure: true 以 HTTPS 方式提供服务) 。通常你唯一需要修改的设置是 prometheus.enable,这样 Helm 图表 就会为你创建一个 ServiceMonitor:
certManager.enable: false。此时,ServiceMonitor 将以 insecureSkipVerify: true 抓取指标,仅依赖 bearer-token 身份验证。
完整的指标相关默认配置如下:
Service/<resource-prefix>-metrics-service— 暴露端口8080(当metrics.secure: true时使用 HTTPS) 。ServiceMonitor/<resource-prefix>-controller-manager-metrics-monitor— 在prometheus.enable: true时创建。ClusterRole/<resource-prefix>-metrics-reader— 为非资源 URL/metrics授予get权限。
保护指标端点
metrics.secure: true 时,指标服务器会对每次抓取都强制启用 TLS 和 Kubernetes 身份验证/授权。抓取器必须:
- 提供有效的 Kubernetes Bearer 令牌。
- 使用一个绑定到集群角色的 ServiceAccount,且该集群角色被授予对非资源 URL
/metrics执行get的权限。
ServiceMonitor 参考
prometheus.enable: true 时,该 Helm 图表 会渲染出如下形态的 ServiceMonitor:
tlsConfig.insecureSkipVerify: true,并仅依赖 bearer-token 身份验证——当 certManager.enable: false 时,该 chart 已默认这样做。
独立 Prometheus 示例
examples/prometheus_secure_metrics_scraper.yaml 中提供了一个完整的独立示例。它会创建一个 ServiceAccount、所需的 RBAC,以及一个用于选取该 operator 的 ServiceMonitor 的 Prometheus CR。
健康探针端点
这两个端点都注册了同一个简单的 Ping 检查 (
sigs.k8s.io/controller-runtime 中的 healthz.Ping) 。因此,探针失败表示“manager 进程未在 :8081 上提供 HTTP 服务”,而不是“控制器不健康”。要检测控制器级别的问题,请改用协调指标。
默认情况下,这两个端点都通过端口 8081 提供服务。它们接入部署的方式如下:
unable to start manager、RBAC 失败或 cache did not sync 错误。
指标目录
controller-runtime 和 client-go 库暴露。按用途分组后,最有用的序列包括:
协调活动
controller 标记是 controller-runtime 根据通过 For(...) 注册的资源类型推导出来的。按当前 internal/controller/clickhouse 和 internal/controller/keeper 中的代码,它们分别对应 clickhousecluster 和 keepercluster。如果你自定义了 operator,请对 /metrics 执行一次性抓取以进行验证。
工作队列
name 和 controller 这两个标记的值相同 (即控制器名称) 。
API 服务器流量
Leader 选举
Helm 图表默认启用
--leader-elect,因此在标准 Helm 安装中会提供此指标。若直接运行该二进制文件且未使用此标志,则不会提供该指标。
运行时
go_goroutines、go_memstats_*、process_cpu_seconds_total、process_resident_memory_bytes 等。
常用 PromQL 查询
健康总览
积压检测
限流与 API 压力
Leader 状态 (HA 部署)
建议的告警
验证设置
clickhouse-operator-system 中: