如何将Prometheus告警规则限定到指定Kubernetes Service并调整CPU计算逻辑
Prometheus告警规则调整方案
针对你提出的两处修改需求,调整后的告警规则可参考以下两种实现方式:
方式一:通过Pod标签直接筛选(推荐)
如果你的计算任务Service是通过固定标签关联Pod的,直接在指标中添加标签过滤即可:
sum(rate(container_cpu_usage_seconds_total{id="/", app="你的计算任务Pod标签"}[1m])) / 0.5 * 100 > 50
修改说明:
- 限定目标Service范围:把
app="你的计算任务Pod标签"替换为实际标签(比如service=compute-job或workload=data-processing),这个标签是你的Service用来选择Pod的匹配条件,添加后只会统计该Service下Pod的CPU使用率。 - 替换CPU配额分母:500毫核等于0.5个CPU核心,直接将原规则中
sum(machine_cpu_cores)替换为0.5即可,后续配额变更时修改此数值就行。
方式二:通过Service名称关联(适用于标签不直接传递的场景)
如果container_cpu_usage_seconds_total指标没有自带Service关联标签,可借助kube_pod_info指标关联匹配:
sum( rate(container_cpu_usage_seconds_total{id="/"}[1m]) * on(pod) group_left(kubernetes_service_name) kube_pod_info{kubernetes_service_name="你的计算任务Service名称"} ) / 0.5 * 100 > 50
这个方式通过kube_pod_info的kubernetes_service_name标签,精准匹配目标Service下的所有Pod,确保统计范围准确。
内容的提问来源于stack exchange,提问作者Jens Voorpyl
相关产品推荐
相关产品推荐

