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

如何在Prometheus中正确汇总http_server_requests_total指标?

问题分析与解决方法

你遇到的汇总结果不符,大概率是两个原因:要么是未过滤额外的标签维度(比如不同的请求method),要么是混淆了计数器的累计值与时间段增量。

正确的汇总方式

1. 过滤额外标签维度

先执行http_server_requests_total{app="sumiu-web", path="/metrics"}查看返回序列的所有标签——如果存在不同的method(比如GET、OPTIONS)或其他未预期的标签差异,这些都会被sum by(app)全部累加。如果只需要特定类型的请求(比如GET),要加上对应过滤:

sum by(app) (http_server_requests_total{app="sumiu-web", path="/metrics", method="GET"})

2. 明确忽略非目标标签

如果你想不管instance、host、region、method这些标签的差异,直接汇总所有符合条件的请求,也可以用sum without语法,效果和sum by(app)一致,但更直观:

sum without(instance, host, region, method) (http_server_requests_total{app="sumiu-web", path="/metrics"})

3. 统计时间段内的增量访问量

如果你的需求是统计某个时间段内的新增访问量(而非服务启动至今的累计总量),必须先用increase或rate函数计算计数器的增量,再求和:

# 统计最近1小时的/metrics端点总访问量
sum by(app) (increase(http_server_requests_total{app="sumiu-web", path="/metrics"}[1h]))

验证方法

把http_server_requests_total{app="sumiu-web", path="/metrics"}返回的所有数值手动相加,再和汇总查询的结果对比:如果数值一致,说明汇总逻辑没问题,问题出在你对“总访问量”的预期(是累计总量还是时间段增量);如果不一致,检查是否有重复的时间序列(比如同一实例同一标签的重复上报)。

内容的提问来源于stack exchange,提问作者Luiz E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:45:37