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

基于Blackbox Exporter与Grafana计算网站30天可用率的PromQL查询方案

解决Blackbox Exporter计算30天网站可用率的PromQL方案

针对你用Blackbox Exporter的http_probe_status_code指标计算30天可用率,且需要处理非200状态码无数据的场景,最优的PromQL查询可以这样写:

基础查询(单网站)

100 * (
  count_over_time(http_probe_status_code == 200 [30d])
  /
  (
    count_over_time(http_probe_status_code == 200 [30d])
    +
    (count_over_time(http_probe_status_code != 200 [30d]) or vector(0))
  )
)

多网站分组查询(按instance标签区分)

如果监控多个网站,需要按标签分组统计:

100 * (
  count_over_time(http_probe_status_code == 200 [30d]) by (instance)
  /
  (
    count_over_time(http_probe_status_code == 200 [30d]) by (instance)
    +
    (count_over_time(http_probe_status_code != 200 [30d]) by (instance) or vector(0))
  )
)

关键逻辑说明

  • count_over_time(http_probe_status_code == 200 [30d]):统计30天内返回200(成功)的探针执行次数
  • count_over_time(http_probe_status_code != 200 [30d]) or vector(0):统计非200(失败)的探针次数,当无失败数据时,or vector(0)会把空结果转为0,避免分母计算出错
  • 整体公式通过「成功次数/(成功+失败次数)×100」得到可用率百分比

额外注意事项

  • 确保Blackbox Exporter的采集间隔稳定,这样count_over_time的统计结果才准确
  • 如果出现总探针次数为0的极端情况(比如网站完全未被探测),查询会返回NaN,可以在末尾追加or vector(0)或者clamp_min(..., 0)处理,根据需求调整显示逻辑
  • 在Grafana仪表盘配置时,记得将面板单位设置为「百分比」,并可在面板选项中设置NaN值的显示规则(比如显示100%)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:57:50