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

请求协助:通过PromQL实现HTTP状态码占比统计及仪表盘可视化

HTTP状态码占比查询方案(PromQL)

原查询问题分析

你之前的查询仅能单独计算2xx状态码的占比,无法同时展示多分组(如4xx、5xx)的占比数据,且未保留状态码的标签维度,导致图表无法区分不同分组。


一、按状态码大类(2xx/4xx/5xx)展示占比

如果你的指标中没有status_class标签,可通过label_replace生成大类标签,再计算占比:

sum by (status_class) (
  label_replace(
    rate(http_server_requests_seconds_count{app="xxxx", uri!~".*actuator.*"}[2m]),
    "status_class", "$1xx", "status", "(.).*"
  )
) 
/ 
sum(rate(http_server_requests_seconds_count{app="xxxx", uri!~".*actuator.*"}[2m]))
* 100

说明

  • label_replace将status标签的第一个字符提取,生成status_class(如200→2xx,401→4xx)
  • sum by (status_class)按大类聚合请求量
  • 除以总请求量的速率后乘以100,得到各分类的占比百分比

二、按具体状态码(401/500/502/503等)展示占比

若需展示特定具体状态码的占比,直接按status标签分组即可:

sum by (status) (
  rate(http_server_requests_seconds_count{app="xxxx", uri!~".*actuator.*", status=~"401|500|502|503|2.."}[2m])
) 
/ 
sum(rate(http_server_requests_seconds_count{app="xxxx", uri!~".*actuator.*"}[2m]))
* 100

说明

  • status=~"401|500|502|503|2.."筛选需要展示的具体状态码或大类(2..匹配所有2xx状态码)
  • 若需展示所有状态码,移除status的筛选条件即可

图表配置建议

  • 使用饼图(Pie Chart):直观展示各分组的静态占比分布
  • 使用堆叠柱状图(Stacked Bar Chart):查看不同时间维度下各分组占比的变化趋势

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:47:29