如何基于http_server_requests_seconds_count在Grafana中构建请求统计表格?
Grafana表格可视化:多维度HTTP请求指标统计
核心方案
通过多个PromQL查询分别统计各维度指标,再在表格面板的「字段」配置中,将每个查询结果映射到对应列,同时设置列的名称和显示规则。
步骤1:编写各维度的PromQL查询
在Grafana的查询编辑器中,依次添加以下5个查询(每个查询对应一列):
URI维度查询
用于提取所有存在请求的URI,后续仅保留标签列:sum(http_server_requests_seconds_count) by (uri)500状态码请求数
sum(http_server_requests_seconds_count{status="500"}) by (uri)400状态码请求数
sum(http_server_requests_seconds_count{status="400"}) by (uri)非200/300/400/500的请求数
sum(http_server_requests_seconds_count{status!~"2..|3..|400|500"}) by (uri)URI平均请求数
以下示例为5分钟时间窗口内的平均QPS,可根据需求调整时间范围:avg(rate(http_server_requests_seconds_count[5m])) by (uri)
步骤2:表格字段映射配置
添加完所有查询后,切换到「面板」→「字段」选项卡,逐个配置字段:
- 第一列(URI):找到第一个查询的字段,关闭数值列显示,仅保留
uri标签作为列内容,将列名改为URI。 - 第二列(500请求数):对应第二个查询的字段,列名改为
500请求数,可设置字段类型为「整数」。 - 第三列(400请求数):对应第三个查询的字段,列名改为
400请求数,调整字段类型为「整数」。 - 第四列(异常状态请求数):对应第四个查询的字段,列名改为
非200/300/400/500请求数,设置字段类型为「整数」。 - 第五列(平均请求数):对应第五个查询的字段,列名改为
平均请求数,可设置小数保留位数(如2位)。
步骤3:优化表格显示
在「面板」→「选项」选项卡中可调整:
- 空值替换:将无数据的单元格替换为
0,提升可读性 - 排序规则:按指定列(如总请求数)升/降序排列
- 列宽、对齐方式等显示细节
注意事项
- 确保Prometheus数据源中的
http_server_requests_seconds_count指标包含uri和status标签,否则查询无法正常返回结果。 - 若需统计总请求数而非QPS,可将平均请求数的查询替换为
sum(http_server_requests_seconds_count) by (uri),再根据时间范围计算平均值。
内容的提问来源于stack exchange,提问作者ricks
相关产品推荐
相关产品推荐

