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

Prometheus的increase()与delta()函数返回结果超预期一倍的问题

问题分析与解决

你的问题核心是:increase() 和 delta() 会对每条匹配的时间序列单独计算增量,如果你的counter_success{queueName="myTestQueue"}实际对应两条时间序列(只是图表做了聚合展示),最终返回的结果就是单条序列增量的两倍。

排查步骤

  1. 检查时间序列数量
    执行以下PromQL确认该指标下的序列数:

    count(counter_success{queueName="myTestQueue"})
    

    如果结果为2,说明存在重复采集(比如两个采集任务抓取了同一个指标,或同一任务下不同实例输出了相同queueName的指标)。图表工具(如Grafana)通常会默认对同queueName的序列做sum或avg聚合,所以显示的是合并后的值,但直接调用increase/delta会返回每条序列的增量,看起来结果翻倍。

  2. 核对标签维度
    查看指标的完整标签集,是否存在未注意到的标签(如instance、job、pod)导致序列拆分。比如两个不同的实例都输出了queueName="myTestQueue"的指标,它们会被视为两条独立序列。

  3. 排除计数器重置干扰
    虽然计数器重置一般不会导致结果翻倍,但可以用以下查询确认是否存在异常重置:

    changes(counter_success{queueName="myTestQueue"}[1h])
    

    若返回值远高于正常采集频率,说明有频繁重置,但这不是你当前问题的直接原因。

解决方法

如果确认是多序列问题,在查询时添加聚合函数即可对齐图表结果:

sum(increase(counter_success{queueName="myTestQueue"}[10m]))

该查询会先计算每条序列的10分钟增量,再求和,结果与图表展示的聚合值一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:02:40