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

如何在Prometheus中按Deployment对Pod指标进行分组?

按Deployment、CronJob等维度聚合Prometheus容器指标的方法

核心逻辑是:Kubernetes中Pod会携带关联上层资源(Deployment、CronJob等)的标签,或可通过kube-state-metrics提供的元数据指标建立关联,再用PromQL的聚合函数按对应维度分组。

一、按Deployment分组

Deployment管理的Pod通常会自带deployment标签,或遵循K8s标准标签规范(如app.kubernetes.io/name、app.kubernetes.io/instance),直接用这些标签聚合即可:

# 按deployment标签聚合5分钟内CPU使用率速率
sum(rate(container_cpu_usage_seconds_total{container!="POD", namespace="your-namespace"}[5m])) by (deployment)

# 若使用标准标签,替换为对应字段
sum(rate(container_cpu_usage_seconds_total{container!="POD", namespace="your-namespace"}[5m])) by (app.kubernetes.io/name)

注:container!="POD"用于排除pause容器,避免统计无效资源占用。

二、按CronJob分组

CronJob生成的Pod通常有两种关联方式:

  1. 直接通过Pod标签聚合
    若Pod带有cronjob标签,直接聚合:

    sum(rate(container_cpu_usage_seconds_total{container!="POD", namespace="your-namespace"}[5m])) by (cronjob)
    
  2. 通过Job关联CronJob
    若Pod只有job-name标签(Job名称通常是CronJob名加随机后缀),可结合kube-state-metrics的kube_cronjob_metadata指标关联:

    sum by (cronjob) (
      rate(container_cpu_usage_seconds_total{container!="POD", namespace="your-namespace"}[5m])
      * on(job-name) group_left(cronjob)
      kube_cronjob_metadata{namespace="your-namespace"}
    )
    

三、通用关联方法(适用于所有上层资源)

如果Pod没有直接的上层资源标签,可借助kube-state-metrics的kube_pod_owner指标(记录Pod与所有者的关系),指定owner_kind来关联不同类型的资源:

# 按Deployment聚合
sum by (owner_name) (
  rate(container_cpu_usage_seconds_total{container!="POD", namespace="your-namespace"}[5m])
  * on(pod, namespace) group_left(owner_name, owner_kind)
  kube_pod_owner{owner_kind="Deployment", namespace="your-namespace"}
)

# 替换owner_kind为CronJob即可按CronJob聚合
sum by (owner_name) (
  rate(container_cpu_usage_seconds_total{container!="POD", namespace="your-namespace"}[5m])
  * on(pod, namespace) group_left(owner_name, owner_kind)
  kube_pod_owner{owner_kind="CronJob", namespace="your-namespace"}
)

注意事项

  • 若使用kube-state-metrics的关联指标,需确保Prometheus已配置采集该组件的指标。
  • 不同集群的标签规范可能不同,可先执行container_cpu_usage_seconds_total{container!="POD"}查看Pod实际携带的标签,调整聚合字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:18:34