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

验证Grafana/Prometheus中提取每小时流量的NGINX PromQL查询是否正确

关于你的PromQL查询的分析与优化建议

你的核心查询逻辑是正确的,它能按location_zone分组,统计每小时内2xx/4xx/5xx状态码的请求总增量。以下是一些细节注意事项和优化方向:

  • 确认指标类型:确保nginxplus_location_zone_responses是计数器(Counter)类型的指标,increase()函数仅适用于单调递增的计数器,如果是仪表盘(Gauge)类型,这个查询会出现错误结果。
  • 流量范围调整:当前查询只统计了2xx/4xx/5xx状态码的请求,若需要统计全量流量,可以移除code=~"2xx|4xx|5xx"的过滤条件,或者将匹配规则改为code=~".xx"覆盖所有状态码分类。
  • 分组维度优化:如果需要同时查看不同状态码在各区域的分布,可将分组维度改为sum by(location_zone, code),这样能分别展示每个区域下各类状态码的请求量。
  • 空值与可视化适配:若某些location_zone在1小时内无请求,increase()会返回空值,Grafana面板中不会显示这些区域。如果需要强制显示0值,可修改查询为:
    sum by(location_zone) (increase(nginxplus_location_zone_responses{code=~"2xx|4xx|5xx"}[1H])) or vector(0)
    
  • 时间范围匹配:在Grafana面板中使用该查询时,注意面板的时间范围与[1H]的匹配。例如当面板时间范围小于1小时时,increase[1H]可能无法获取完整的增量数据,此时可考虑用rate()函数乘以3600近似计算(sum by(location_zone) (rate(...)*3600)),不过increase()的准确性更高,优先建议保持原函数,调整面板时间范围适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:42:09