You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Prometheus采集的K8s容器多状态指标转换为单一状态值?

Kubernetes容器状态表格展示解决方案

一、多指标合并为单一状态的PromQL查询

要把三个状态指标转换为明确的状态文本,可使用以下PromQL语句,它会将每个容器的状态映射为对应的文本标签:

label_replace(kube_pod_container_status_running == 1, "status", "Running", "", "")
or
label_replace(kube_pod_container_status_terminated == 1, "status", "Terminated", "", "")
or
label_replace(kube_pod_container_status_waiting == 1, "status", "Waiting", "", "")

在Grafana表格视图中配置时,只需选择以下标签作为表格列:

  • namespace(命名空间)
  • pod(Pod名称)
  • container(容器名称)
  • status(转换后的状态文本)

二、澄清kube_pod_container_status_running与ready的差异

你对这两个指标的理解有误,二者并不重复:

  • kube_pod_container_status_running:仅标识容器处于运行中状态,只要容器完成启动进入running阶段就会返回1,和容器是否能对外提供服务无关。
  • kube_pod_container_status_ready:要求容器不仅处于running状态,还必须通过Pod定义的**就绪探针(readinessProbe)**检查。只有该指标为1时,容器才会被纳入集群服务的负载均衡范围,接收外部流量。比如容器启动后加载配置的阶段,running是1,但ready会保持0,直到就绪探针验证通过才会切换为1。

内容的提问来源于stack exchange,提问作者Joseph Gagnon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:22:58