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

Prometheus Counter重置问题及Grafana断层处理咨询

解决Prometheus Counter重置后计数续接与Grafana折线断层问题

一、Prometheus实现续接计数

Counter类型指标的特性就是进程重启后会重置为0,这和Prometheus的持久存储无关——持久存储保存的是Prometheus抓取到的样本数据,而非API进程内的Counter状态。要实现续接计数,不需要修改Prometheus配置,而是通过正确的查询函数处理:

  • 计算累计总调用数:使用increase()函数,它会自动识别Counter的重置事件(当样本值出现下降时,判定为重置,将后续增量累加至之前的总值)。例如你的指标是api_call_count,查询语句为:

    sum(increase(api_call_count[1m]))
    

    这里的[1m]建议设置为抓取间隔的合理倍数(比如抓取间隔是15s,就用1m覆盖多个抓取周期),确保不会漏掉增量。如果要查看指定时间范围内的累计值,在Grafana中可以用变量$__range代替固定时长:

    sum(increase(api_call_count[$__range]))
    
  • 实时查看调用速率:如果不需要累计值,只是看调用速率趋势,用rate()或irate()函数,同样会自动处理重置:

    rate(api_call_count[5m])
    

二、Grafana中忽略折线断层

原始Counter指标重启后会从之前的数值跳回0,导致折线出现断层。解决方式有两种:

  1. 使用处理后的查询语句:直接用上面提到的increase()、rate()或irate()函数查询,得到的结果是连续的增量或速率,不会出现断层,这是最彻底的解决方式。

  2. 面板视觉优化(特殊场景):如果必须使用原始Counter指标(不推荐),可以在Grafana面板的「可视化」选项中,找到「连接非连续点」的设置(不同Grafana版本位置略有差异,通常在「显示」或「选项」标签下),开启后会用折线连接断层两端,但这只是视觉上的修补,不如用PromQL函数从数据层面解决合理。

内容的提问来源于stack exchange,提问作者Semi-okay Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:36:24