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

Prometheus/Grafana Counter求和:如何统计应用处理的Kafka消息总量

问题排查与解决方案

原查询错误点

  • 误用rate()函数:rate()作用是计算Counter类型指标在指定时间窗口内的每秒平均增长率,你需要的是累计总量,完全不符合需求
  • sum分组规则错误:你在sum by中加入了processed_count标签,该标签的值会随着计数更新不断变化,按该标签分组会导致每个不同的计数值单独分为一组,无法聚合得到总和
  • 注意确认查询的指标名update_api_call_count_total和你实际推送到Prometheus的Counter指标名一致,避免指标匹配错误

正确查询语句

场景1:获取从指标初始化到当前的总累计处理量

sum by (function_name, job) (update_api_call_count_total{function_name="input_message",job="pushgateway"})

场景2:获取指定时间范围内(例:最近1小时)的新增处理总量

用increase()函数计算Counter在时间窗口内的增量,结果就是这段时间的总处理条数:

sum by (function_name, job) (increase(update_api_call_count_total{function_name="input_message",job="pushgateway"}[1h]))

补充注意事项

从你给出的指标样例来看,你把计数processed_count同时作为标签和指标值上报,这是错误的使用方式:Counter类型的计数值应该直接作为指标值上报,不要设置为标签,否则会产生大量冗余的时间序列,也会导致聚合统计逻辑异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:57:01