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

Prometheus中对比指标自身状态,检测增长率变化的正确方法

检测指标增长率的正确PromQL写法

你的原始语句逻辑搞反了,要计算过去5分钟的增长率(当前相对5分钟前的增长幅度),得用当前速率除以历史速率再减1,或者直接判断当前速率是历史的1.02倍以上,以下是正确写法:

写法一:基于增长率公式

(sum(rate(my_http_counter[1m])) by (label) / sum(rate(my_http_counter[1m] offset 5m)) by (label)) - 1 > 0.02

这个表达式的逻辑是:

  1. sum(rate(my_http_counter[1m])) by (label):获取当前各label维度的1分钟速率
  2. sum(rate(my_http_counter[1m] offset 5m)) by (label):获取5分钟前同一窗口的1分钟速率
  3. 两者相除后减1,得到增长率,判断是否超过2%

写法二:等价的倍数判断

如果觉得除法容易出问题(比如除数为0),可以换成乘法逻辑:

sum(rate(my_http_counter[1m])) by (label) > 1.02 * sum(rate(my_http_counter[1m] offset 5m)) by (label)

额外注意事项

  • 避免除数为0:如果5分钟前的速率为0,除法会报错,可加过滤条件:
    ((sum(rate(my_http_counter[1m])) by (label) / sum(rate(my_http_counter[1m] offset 5m)) by (label)) - 1 > 0.02) 
    and sum(rate(my_http_counter[1m] offset 5m)) by (label) > 0
    
  • 平滑波动:如果1分钟窗口的速率波动太大,可以换成更长的窗口(比如5分钟)来计算rate,比如sum(rate(my_http_counter[5m])) by (label),这样结果更稳定

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:00:54