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

如何用Prometheus的PromQL获取运行指定Pod的Kubernetes节点数

正确的PromQL查询方案:统计运行指定Pod的Kubernetes节点数量

原查询的问题

  • kube_pod_created是事件型指标,仅记录Pod创建的瞬间,无法反映Pod当前是否仍在运行,会把已销毁Pod对应的节点也纳入统计
  • 嵌套sum的逻辑冗余,且by(time)会将结果按时间拆分成多个数据点,不符合Grafana数字展示的需求(我们需要单一数值结果)

两种场景的正确查询语句

1. 当前时刻运行指定Pod的节点数量

使用kube_pod_status_running指标(需确保kube-state-metrics已采集该指标),它仅标记处于Running状态的Pod:

count(count(kube_pod_status_running{pod=~"distributed-jmeter-slave.*", status="true"}) by (node))

逻辑:先按node分组,统计每个节点上符合条件的Running Pod数量,再对分组结果计数,得到节点总数。

2. 指定时间范围内曾运行过指定Pod的节点数量

如果要统计比如最近5分钟内,只要运行过该类Pod的节点都算(不管Pod当前是否存活),可以用kube_pod_info结合时间范围查询:

count(count_over_time(kube_pod_info{pod=~"distributed-jmeter-slave.*"}[5m]) by (node))

逻辑:kube_pod_info是描述Pod基本信息的指标,只要Pod存在就会被采集;count_over_time统计5分钟内每个节点上出现过的该类Pod样本数,再对节点分组结果计数,得到这段时间内涉及的节点总数。

Grafana展示设置

  • 选择Stat类型的面板,将上述查询语句填入Metrics浏览器
  • 调整时间范围到你需要的区间,面板会自动展示单一的数字结果

内容的提问来源于stack exchange,提问作者Udara Manupriya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:52:20