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

如何调整PromQL查询:无错误指标时返回100%HTTP请求成功率?

解决PromQL无错误指标时成功率无数据的问题

你的查询在没有error="true"的请求时,错误请求的求和结果为空,导致整个表达式返回空值,Grafana无法展示数据。可以通过or vector(0)将空的错误请求计数替换为0,从而在无错误时显示100%的成功率:

1 - 
(sum by(api_name)
(
    increase(demo_http_requests_seconds_count{error="true", api_name="Demo_API", consumer="Demo_Consumer"}[$__range])
) or vector(0))
/ 
sum by(api_name)
(
    increase(demo_http_requests_seconds_count{api_name="Demo_API", consumer="Demo_Consumer"}[$__range])
)

原理说明

  • 当没有匹配error="true"的请求时,sum by(api_name)(increase(...))会返回空的时间序列,or vector(0)会将其替换为值为0的序列。
  • 此时1 - 0/总请求数的结果为1,对应100%成功率,Grafana就能正常展示数据。

额外优化(可选)

如果存在一段时间内没有任何请求(总请求数也为空)的情况,分母会出现0导致结果为NaN,可以进一步用or vector(1)处理分母,确保无请求时也显示100%:

1 - 
(sum by(api_name)
(
    increase(demo_http_requests_seconds_count{error="true", api_name="Demo_API", consumer="Demo_Consumer"}[$__range])
) or vector(0))
/ 
(sum by(api_name)
(
    increase(demo_http_requests_seconds_count{api_name="Demo_API", consumer="Demo_Consumer"}[$__range])
) or vector(1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 19:06:02