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

如何在服务器重启后获取正确的Prometheus Counter类型指标数据?

问题解答

1. 获取目标统计结果的PromQL查询

要得到总属性计数19、success总数14、failed总数5的统计结果,可使用以下PromQL:

  • 总属性计数:sum(attribute_count_total)
  • 按success/failed分组统计:sum by(attr2) (attribute_count_total)

这两个查询会将所有标签组合下的attribute_count_total指标值分别求和,其中sum by(attr2)会按attr2标签(success/failed)分组聚合。

2. 应用重启后保留Counter计数的方案

Counter类型指标在应用重启后会重置为0,可通过两种方式解决:

应用层面处理

在应用内部将Counter的当前值持久化到本地文件、数据库或缓存中,应用启动时从持久化存储读取并恢复计数,确保Counter的连续性。

PromQL层面处理

利用Prometheus内置函数自动处理Counter重置:

  • 使用increase(attribute_count_total[1m])计算每分钟的增量(该函数会自动识别Counter重置,从0开始计算增量)
  • 若要统计累计值,可结合sum_over_time累加所有时间段的增量:sum(sum_over_time(increase(attribute_count_total[1m])[∞:1m]))
  • 在Grafana中展示时,可将面板的显示模式设置为Cumulative(累计),基于增量数据自动累加得到总计数。

3. 给定查询的正确性判断

  • 总属性计数:sum(attribute_count_total)
    该查询正确,前提是你需要统计所有标签组合下Counter当前值的总和(即所有历史累计次数的总和)。
  • 按success/failed统计:sum by(attr2) (attribute_count_total)
    该查询正确,它会按attr2标签分组,聚合所有对应标签下的Counter当前值总和,正好匹配你需要的success和failed总数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:37:23