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

为何PromQL的rate()函数仅返回单个值?

Pod CPU使用率计算中rate()仅返回单个值的问题及解决

问题描述

我尝试使用rate()函数计算Pod的CPU使用率最小值、最大值和平均值,但rate()仅返回单个值。

获取原始指标数据

执行以下命令获取container_cpu_usage_seconds_total指标的CPU使用秒数时间序列:

curl -s -G "http://master-1.ocp9.pd.f5net.com:30355/api/v1/query" --data-urlencode "query=container_cpu_usage_seconds_total{namespace='arka-ingress', pod='f5ingress-f5ingress-55ff78b955-bjhbc', container=''}[12h:1h]" | jq

返回的时间序列数据包含多个时间点的数值:

"values": [
  [1685746800, "233.925484799"],
  [1685750400, "245.503601613"],
  [1685754000, "257.245759184"],
  [1685757600, "268.81255512"],
  [1685761200, "280.711385953"],
  [1685764800, "292.226109825"],
  [1685768400, "304.090964418"],
  [1685772000, "315.670226267"],
  [1685775600, "327.400741452"],
  [1685779200, "339.122179483"],
  [1685782800, "350.865870242"]
]

异常的rate()查询结果

使用rate()查询时,预期返回一系列变化率,但仅得到单个值:

curl -s -G "http://master-1.ocp9.pd.f5net.com:30355/api/v1/query" --data-urlencode "query=rate(container_cpu_usage_seconds_total{namespace='arka-ingress', pod='f5ingress-f5ingress-55ff78b955-bjhbc', container=''}[12h:1h])" | jq

返回结果:

"value": [1685786028.71, "0.003085077907426099"]

原因分析

问题核心在于Prometheus的查询接口特性与rate()的工作逻辑:

  1. 你使用的是/api/v1/query即时查询接口,它仅返回查询执行时刻的单一计算结果。rate()在这里会用指定的[12h:1h]大时间窗口内的所有数据,计算出一个整体平均速率,而非时间序列。
  2. [12h:1h]的超大窗口会完全平滑掉短期CPU波动,最终只能得到12小时内的平均CPU使用率,因此仅返回单个值。

解决方法

要获取时间序列形式的CPU使用率变化率,需使用/api/v1/query_range范围查询接口,并配置合理参数:

  • 选用较小的rate()计算窗口(比如[5m]),确保能捕捉到短期CPU波动
  • 指定查询的时间范围(start和end参数)
  • 设置合适的步长(step参数),控制返回数据点的密度

你已经找到正确的查询方式:

curl -s -G "http://master-1.ocp9.pd.f5net.com:30355/api/v1/query_range" --data-urlencode "query=rate(container_cpu_usage_seconds_total{namespace='arka-ingress', pod='f5ingress-f5ingress-55ff78b955-bjhbc', container=''}[5m]) * 1000" --data-urlencode "start=1685811600" --data-urlencode "end=1685811660" --data-urlencode "step=15s" | jq

该查询会在1685811600到1685811660的时间范围内,每15秒计算一次过去5分钟的CPU使用率(乘以1000是转换为mCPU单位),返回一系列时间点的数值,后续即可基于这些数据计算最小值、最大值和平均值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:43:26