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

求助:用Prometheus和Grafana实现每周聚合指标可视化方案

实现Prometheus+Grafana每周计数器数据聚合可视化方案

核心前提:计数器数据的正确处理逻辑

计数器是单调递增的指标,周级聚合需要获取单周内的总增量,而非瞬时速率。不要用irate()(适合短周期瞬时速率计算),应该用increase()获取指定窗口内的增量总和,这是保证数据准确性的关键。

具体实现方案

1. 单周增量查询

要获取当前周的指标总增量,直接执行:

sum(increase(metrics_name[1w]))

2. 多周对比聚合(固定过去4周)

如果要在图表中同时展示过去4周每周的增量数据,用带offset的多语句组合:

sum(increase(metrics_name[1w])) as "本周",
sum(increase(metrics_name[1w] offset 1w)) as "上周",
sum(increase(metrics_name[1w] offset 2w)) as "上上周",
sum(increase(metrics_name[1w] offset 3w)) as "前三周"

将这个查询填入Grafana面板后,会生成4个系列,对应过去4周的增量数据,符合你想要的每周聚合视图。

3. 动态周分组适配任意时间范围

如果希望图表根据选择的时间范围自动按周分组展示(比如选择过去8周,就自动分成8个周数据点),可以结合Grafana的内置变量:

sum(increase(metrics_name[$__interval])) by (time($__interval))

然后在Grafana面板的「查询选项」中,将「最小间隔」设置为1w,确保分组粒度固定为每周,避免Grafana自动选择更小的时间间隔。

修正你现有查询的问题

你之前的查询存在两个关键问题:

  • 错误使用irate(metrics_name[1w]):irate计算的是1周窗口内的瞬时速率,无法准确反映整周的总增量,应该替换为increase
  • 重复执行sum_over_time(...)并相加:这属于冗余操作,直接对increase的结果求和即可得到单周总增量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 00:42:45