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

如何在Grafana中查看特定Deployment的运行Pod数及Pod运行时长

如何在Grafana中展示特定Deployment的Pod数量及Pod运行时长

一、展示特定Deployment的Pod数量

  1. 确保Prometheus已配置采集Kubernetes指标(依赖kube-state-metrics组件,它会暴露Deployment与Pod的关联状态数据)
  2. 在Grafana中创建新面板:
    • 选择Prometheus作为数据源
    • 在查询框中输入以下PromQL语句(替换your-deployment-name和your-namespace为实际值):
      # 方式1:直接获取Deployment的可用副本数(官方推荐,关联Deployment原生状态)
      kube_deployment_status_replicas_available{deployment="your-deployment-name", namespace="your-namespace"}
      
      # 方式2:统计该Deployment下所有运行中的Pod数量(通过Pod的归属关联)
      count(kube_pod_info{owner_name="your-deployment-name", owner_kind="Deployment", namespace="your-namespace", pod_status="running"})
      
    • 选择可视化类型(Stat面板适合展示实时数值,Graph面板可展示数量变化趋势)
    • 调整面板标题、单位等配置后保存

二、获取Pod的运行时长

1. 查看当前运行中Pod的实时运行时长

  • 在Grafana面板中使用以下PromQL语句(替换命名空间和Deployment前缀):
    time() - kube_pod_container_status_start_time{pod=~"your-deployment-name-.*", namespace="your-namespace"}
    
  • 选择Table可视化类型,可展示每个Pod的名称、运行时长(在Grafana的单位设置中选择Time > hh:mm:ss,将秒数转换为易读格式)

2. 获取已终止Pod的生命周期时长(从启动到终止的持续时间)

由于Pod终止后指标会从Prometheus中消失,需依赖历史数据计算:

  • 先定位Pod终止的时间点:
    max_over_time(kube_pod_status_phase{pod="terminated-pod-name", namespace="your-namespace", phase="Terminated"}[7d])
    
  • 再获取该Pod的启动时间:
    last_over_time(kube_pod_container_status_start_time{pod="terminated-pod-name", namespace="your-namespace"}[7d])
    
  • 两者差值即为Pod的生命周期时长,可通过Grafana变量或Prometheus记录规则批量计算多个已终止Pod的时长

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:25:04