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

如何在Grafana中按小时获取Counter指标的数量分布?

实现按小时请求数量分布的PromQL方案

针对你的http_server_requests_seconds_count{} Counter指标,要实现Grafana中按小时的请求数量分布,核心是利用PromQL的增量计算与时间维度聚合函数,具体方案如下:

1. 按小时区间展示实时请求量(最近N小时,每小时一个数据点)

如果要展示最近一段时间内每小时的请求总数(比如最近24小时,每个小时的请求量),直接用以下查询:

increase(http_server_requests_seconds_count{}[1h])

然后在Grafana面板设置中,将时间间隔(Interval)调整为1小时,或使用Grafana内置变量$__interval,面板会自动按小时展示每个区间的请求增量。

2. 按一天24小时聚合历史请求分布(对比0-23点的请求量)

如果要统计历史数据中每个小时的请求总量分布(比如把最近7天里所有0点的请求加总、1点的请求加总,对比24小时的流量差异),用以下查询:

sum by (hour) (
  increase(http_server_requests_seconds_count{}[$__range])
  * on() group_left(hour) hour(timestamp(http_server_requests_seconds_count{}))
)
  • $__range是Grafana变量,代表当前面板选择的时间范围(比如选最近7天,就会聚合这7天的小时数据)
  • 最终会输出0-23共24个数据点,对应一天中每个小时的总请求量

关键运算符/函数说明

  • increase():计算Counter指标在指定时间窗口内的总增量,直接得到这段时间的请求总数,比rate()(每秒增量)更适合统计总量
  • hour():提取时间戳对应的小时数(0-23),作为分组维度
  • sum by (hour):按小时维度聚合所有请求的增量,得到每个小时的总请求数
  • * on() group_left(hour):通过匹配运算符将每个请求序列的增量与对应的小时数关联,实现按小时分组聚合

面板配置建议

  • 选择柱状图或条形图面板类型,最适合展示小时分布的对比效果
  • 如果需要按其他维度(如接口路径、响应状态)细分,可在sum by中添加对应标签,比如sum by (hour, path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 07:43:38