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

Prometheus increase函数计算结果异常原因咨询

PromQL Increase函数异常问题解析

问题2:increase(metric[1m])[10m:] 无增量输出

核心原因分为两种情况:

  • 样本数量不足:如果Prometheus对该指标的采集间隔(scrape interval)大于1m,那么metric[1m]的时间窗口内只会包含1个甚至0个样本。increase()函数需要至少两个样本才能计算差值,因此直接返回0,子查询的所有输出结果自然都是0。
  • 评估步长跳过增量窗口:若3次API调用集中在小于1m的时间段内,且子查询未指定步长(默认使用Prometheus全局评估间隔,比如1m),则两次评估的increase(metric[1m])结果都会是0——前一次评估的窗口未覆盖增量时段,后一次评估的窗口内counter已停止增长,样本差值为0。

问题3:increase(metric[1m])[10m:30s] 输出增量为6而非3

这是increase()的外推计算逻辑导致的:
Prometheus的increase()函数会假设counter的增长速率均匀,将样本间的实际差值按时间窗口长度做比例放大,估算整个窗口的增量。假设你的counter从65涨到68的两个样本采集间隔为30s(比如scrape interval是30s):

  1. 实际样本差值:68-65=3
  2. 样本时间间隔:30s
  3. 目标窗口长度:60s(即1m)
  4. 外推增量计算:3 * (60s / 30s) = 6

子查询步长设为30s时,刚好会有一次评估的1m窗口覆盖了这两个样本,触发外推逻辑,最终输出6。

验证与修复建议

  • 用rate(metric[1m]) * 60替代increase(metric[1m]),rate返回每秒增长速率,乘以60后可直观看到外推的影响,也能避免直接的增量放大。
  • 执行metric[10m]查看原始样本,确认counter从65到68的时间间隔,验证外推逻辑的影响。
  • 调整range窗口长度为采集间隔的2倍以上(比如采集间隔30s时用increase(metric[2m])),减少外推带来的误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:45:40