kube_pod_status_phase指标含义及Prometheus与Grafana差异疑问
Kubernetes监控:kube_pod_status_phase指标常见问题解答
问题1:kube_pod_status_phase指标的数值代表什么?
kube_pod_status_phase是kube-state-metrics提供的枚举型指标,每个Pod会为所有可能的生命周期阶段(Pending/Running/Succeeded/Failed/Unknown)生成对应指标:
- 数值1代表Pod当前正处于该phase
- 数值0代表Pod当前不处于该phase
你看到部分标记为Running的Pod对应指标值为0,是因为这些Pod当前已经脱离了Running状态(比如已成功结束、失败或被销毁),只是Prometheus还留存了历史数据。
问题2:为何kube_pod_status_phase指标在Prometheus与Grafana中结果不一致?
核心差异在于查询模式:
- Prometheus的即时查询默认返回当前时刻的指标状态
- Grafana默认采用范围查询,会在你选择的时间窗口内遍历所有历史数据点,只要某个Pod在窗口内曾处于目标phase(比如Pending),就会被展示出来,哪怕它现在已经切换到其他状态(比如你提到的Succeeded)
你把时间窗口改成最近5分钟后Pending条目消失,就是因为这些Pod在这段时间里没有处于Pending状态的历史记录了。
补充问题:隐藏Grafana时间选择器后,能否让Grafana仅关注当前时刻?
隐藏时间选择器只是UI层面的隐藏,不会改变查询逻辑。要让Grafana始终获取当前时刻的即时数据,需要修改面板的查询模式:
- 进入面板编辑页,找到查询配置项
- 将查询类型从「Range(范围查询)」切换为「Instant(即时查询)」
- 同时可以在仪表盘或面板设置里配置「Refresh interval(刷新间隔)」,比如设为10秒,Grafana就会按这个频率自动刷新获取最新状态
内容的提问来源于stack exchange,提问作者Joseph Gagnon
相关产品推荐
相关产品推荐

