Kubernetes 组件 SLI 指标

特性状态: Kubernetes v1.29 [稳定]

默认情况下,Kubernetes 1.30 为每个 Kubernetes 组件二进制文件发布服务级别指标 (SLI) 指标。此指标端点在每个组件的提供 HTTPS 端口上的 /metrics/slis 路径中公开。从 v1.27 开始,ComponentSLIs 特性开关 默认情况下对每个 Kubernetes 组件启用。

SLI 指标

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

  • 一个 gauge(表示健康检查的当前状态)
  • 一个 counter(记录每个健康检查状态观察到的累积计数)

您可以使用指标信息来计算每个组件的可用性统计信息。例如,API 服务器检查 etcd 的健康状况。您可以计算并报告 etcd 的可用性或不可用性 - 这是由其客户端 API 服务器报告的。

prometheus gauge 数据如下所示

# 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

而 counter 数据如下所示

# 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 指标端点旨在以高频率进行抓取。以高频率抓取意味着您最终会获得更细粒度的 gauge 信号,然后可以将其用于计算 SLO。/metrics/slis 端点提供计算相应 Kubernetes 组件的可用性 SLO 所需的原始数据。

上次修改时间:2023 年 10 月 18 日下午 10:00 PST: 更新组件 slis 文档 (53a8725ba7)