基于Blackbox Exporter的HTTP端点SLI配置及PromQL正确性咨询
Blackbox Exporter SLI 配置指南
延迟SLI的PromQL优化
你用probe_http_duration_seconds > 1能找出单次延迟超1秒的探测,但如果要统计延迟符合要求的请求占比(对应你的SLI目标),更合适的写法是:
1 - (sum_over_time(probe_http_duration_seconds > 1[1d]) / sum_over_time(probe_http_duration_seconds[1d]))
这个查询会算出1天内延迟≤1秒的请求占比,直接匹配你要的延迟指标要求。
可用性SLI的PromQL修正
你当前的quantile_over_time(0.80, probe_http_status_code)[1d] > 400逻辑不对,问题出在:
- 对HTTP状态码取分位数没有业务价值——比如哪怕80%的请求都是200,剩下20%是500,80分位数的状态码还是200,这个查询根本没法反映可用性。
- 可用性的核心是成功请求的占比,而Blackbox Exporter已经提供了更靠谱的
probe_success指标(1代表探测成功,0代表失败,涵盖了状态码错误、连接超时等所有失败场景)。
正确的可用性SLI查询应该是:
avg_over_time(probe_success[1d]) >= 0.8
如果一定要用状态码判断(比如只把4xx/5xx算失败),可以这么写:
avg_over_time((probe_http_status_code <= 399)[1d]) >= 0.8
这个查询会统计1天内状态码≤399的请求占比,符合你“80%可用性”的要求。
小提示
- 延迟SLI别只看单次探测,统计占比才是SLI的核心意义
- 可用性优先用
probe_success,比自己判断状态码更全面,不容易漏判超时、DNS解析失败等场景
内容的提问来源于stack exchange,提问作者sal
相关产品推荐
相关产品推荐

