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

求Grafana实现kubectl get pods -A效果的查询或仪表盘导入方案

实现类似kubectl get pods -A的Grafana表格(Prometheus数据源)

要在Grafana中复刻kubectl get pods -A的输出表格,你需要基于kube-state-metrics提供的kube_pod_*指标构建查询,以下是各字段对应的PromQL及配置步骤:

各字段查询与配置

1. NAMESPACE & NAME

直接基于kube_pod_info指标提取标签:

kube_pod_info

在Grafana表格中,分别提取namespace和pod标签作为这两列的内容。

2. READY(就绪容器数/总容器数)

需要两个查询配合计算:

  • 就绪容器数:
    sum by (namespace, pod) (kube_pod_container_status_ready{ready="true"})
    
    别名设为Ready
  • 总容器数:
    sum by (namespace, pod) (kube_pod_container_info)
    
    别名设为Total

在表格的转换选项中选择「Merge」合并两个查询结果,再添加一个「计算字段」,公式为${Ready}/${Total},将其格式化为字符串作为READY列的显示内容。

3. STATUS(Pod状态)

使用kube_pod_status_phase指标,查询:

kube_pod_status_phase

该指标会为每个Pod的不同状态(Running/Pending/Failed等)生成值为1的时间序列。在Grafana的字段选项中添加「值映射」:

  • 将{phase="Running"}对应的值1映射为Running
  • 将{phase="Pending"}对应的值1映射为Pending
  • 将{phase="Failed"}对应的值1映射为Failed
  • 将{phase="Succeeded"}对应的值1映射为Succeeded
  • 将{phase="Unknown"}对应的值1映射为Unknown

最后在表格中仅保留映射后的文本作为STATUS列内容。

4. RESTARTS(容器重启总次数)

对每个Pod的所有容器重启次数求和:

sum by (namespace, pod) (kube_pod_container_status_restarts_total)

5. AGE(Pod运行时长)

计算当前时间与Pod创建时间的差值:

time() - kube_pod_created

在Grafana的字段选项中,将单位设置为「Duration」,格式选择d h m(天/时/分)即可实现类似kubectl的时长显示。

注意事项

确保你的Prometheus已经正确配置并采集了kube-state-metrics,上述所有kube_pod_*指标均来自该组件。

内容的提问来源于stack exchange,提问作者Peter Marcus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:23:15