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

如何用PromQL按Namespace聚合两类CPU指标最大值获取有效使用率?

关于PromQL计算平均有效CPU使用率的问题解答

不能直接取这两个查询的最大值来得到按Namespace统计的平均有效CPU使用率,原因如下:

  • 实际CPU使用率是Pod真实消耗的CPU资源,CPU请求量是Pod声明的最小资源保障,二者含义完全不同。
  • 所谓“有效CPU使用率”,核心逻辑是实际消耗的CPU占请求CPU的比例,反映的是资源请求的利用率;而取两者的最大值会无意义地取到请求量(当请求量高于实际使用率时),完全偏离了“有效使用率”的统计目的。

正确的做法是将两个查询做除法运算,按Namespace聚合得到平均有效CPU使用率,PromQL语句如下:

sum by (namespace) (
    avg_over_time(namespace:container_cpu_usage:sum{namespace=~"$namespace"}[$__range])
)
/
sum by (namespace) (
    avg_over_time(kube_pod_resource_request{resource="cpu", namespace=~"$namespace"}[$__range])
)

如果要避免出现除以0的异常(比如某个Namespace没有配置CPU请求),可以用clamp_min函数给分母设置一个极小的最小值,示例如下:

(sum by (namespace) (
    avg_over_time(namespace:container_cpu_usage:sum{namespace=~"$namespace"}[$__range])
))
/
clamp_min(sum by (namespace) (
    avg_over_time(kube_pod_resource_request{resource="cpu", namespace=~"$namespace"}[$__range])
), 1e-9)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:11:07