Kubernetes 组件 SLI 指标

用于衡量 Kubernetes 组件可靠性和性能的高级指标。
特性状态: Kubernetes v1.32 [稳定](默认启用)

默认情况下,Kubernetes 1.36 会发布每个 Kubernetes 组件二进制文件的服务水平指标 (SLI)。该指标端点在每个组件的服务 HTTPS 端口上以 /metrics/slis 路径公开。自 v1.27 起,ComponentSLIs 特性门控 默认对每个 Kubernetes 组件启用。

SLI 指标

启用 SLI 指标后,每个 Kubernetes 组件都会公开两个指标,并按健康检查进行标注:

  • 一个仪表盘(Gauge,代表健康检查的当前状态)
  • 一个计数器(Counter,记录每个健康检查状态的累计次数)

您可以使用这些指标信息来计算每个组件的可用性统计数据。例如,API 服务器会检查 etcd 的健康状况。您可以计算并报告 etcd 的可用或不可用程度——正如其客户端(API 服务器)所报告的那样。

Prometheus 仪表盘数据看起来像这样

# HELP kubernetes_healthcheck [ALPHA] This metric records the result of a single healthcheck.
# TYPE kubernetes_healthcheck gauge
kubernetes_healthcheck{name="autoregister-completion",type="healthz"} 1
kubernetes_healthcheck{name="autoregister-completion",type="readyz"} 1
kubernetes_healthcheck{name="etcd",type="healthz"} 1
kubernetes_healthcheck{name="etcd",type="readyz"} 1
kubernetes_healthcheck{name="etcd-readiness",type="readyz"} 1
kubernetes_healthcheck{name="informer-sync",type="readyz"} 1
kubernetes_healthcheck{name="log",type="healthz"} 1
kubernetes_healthcheck{name="log",type="readyz"} 1
kubernetes_healthcheck{name="ping",type="healthz"} 1
kubernetes_healthcheck{name="ping",type="readyz"} 1

而计数器数据看起来像这样

# HELP kubernetes_healthchecks_total [ALPHA] This metric records the results of all healthcheck.
# TYPE kubernetes_healthchecks_total counter
kubernetes_healthchecks_total{name="autoregister-completion",status="error",type="readyz"} 1
kubernetes_healthchecks_total{name="autoregister-completion",status="success",type="healthz"} 15
kubernetes_healthchecks_total{name="autoregister-completion",status="success",type="readyz"} 14
kubernetes_healthchecks_total{name="etcd",status="success",type="healthz"} 15
kubernetes_healthchecks_total{name="etcd",status="success",type="readyz"} 15
kubernetes_healthchecks_total{name="etcd-readiness",status="success",type="readyz"} 15
kubernetes_healthchecks_total{name="informer-sync",status="error",type="readyz"} 1
kubernetes_healthchecks_total{name="informer-sync",status="success",type="readyz"} 14
kubernetes_healthchecks_total{name="log",status="success",type="healthz"} 15
kubernetes_healthchecks_total{name="log",status="success",type="readyz"} 15
kubernetes_healthchecks_total{name="ping",status="success",type="healthz"} 15
kubernetes_healthchecks_total{name="ping",status="success",type="readyz"} 15

使用此数据

组件 SLI 指标端点旨在以高频率进行抓取。高频抓取意味着您可以获得更精细的仪表盘信号,进而可用于计算 SLO。/metrics/slis 端点提供了计算相应 Kubernetes 组件可用性 SLO 所需的原始数据。


最后修改于 2025 年 1 月 7 日太平洋标准时间晚上 8:06: 添加 Kubernetes 组件 SLI 指标描述 (6c83f61fa5)