基于Prometheus的HTTP请求统计:Grafana查询与饼图配置正确性验证
查询语句符合需求,饼图配置可优化但当前也能正常工作
为什么查询语句是正确的
sum(increase(http_requests_received_total[$__range])) by (controller, action) 完美匹配你的需求:
http_requests_received_total是计数器类型指标,increase()能准确计算出你选定的绝对时间区间($__range对应Grafana里选中的时间范围)内的请求增量,也就是这段时间的总请求数sum(...) by (controller, action)按控制器和动作维度做聚合,正好得到每个(controller, action)分组的总请求数,完全满足饼图按维度展示占比的要求
饼图配置的情况
当前的配置(Format=Time Series、Type=Range、Calculation=Last *)能得到正确结果,但有更贴合的优化方式:
- 你的查询返回的是每个分组的单个数值(整个区间的总请求数),并非多时间点的序列,所以把
Type从Range改成Instant会更合理,避免做不必要的时间序列聚合计算 - 不过当前配置也没问题:因为每个分组只有一个数据点,
Last会直接取到这个值,最终饼图能正常渲染
额外提醒
- 要确认
http_requests_received_total指标确实带有controller和action标签,不然分组逻辑会失效 - 如果你的应用部署了多个实例,
sum()会把所有实例的同分组请求数累加,这通常是符合“总请求数”需求的;如果需要按实例拆分数据,把instance标签加到by子句里即可
内容的提问来源于stack exchange,提问作者Peter Brew
相关产品推荐
相关产品推荐

