首页/云/可观测性速查/燃尽率(Burn Rate):基于 SLO 的告警指标
监控体系与方法40 条

燃尽率(Burn Rate):基于 SLO 的告警指标

燃尽率 = 当前错误率 ÷ 允许错误率,表示错误预算的消耗速度;多窗口多阈值组合(如 14.4×1 小时与 6×6 小时)兼顾快速发现与降低误报。

可观测性速查云更新于 2026-10-13

燃尽率是什么

燃尽率表示错误预算的消耗速度,等于当前错误率除以允许错误率。以 99.9% 的 SLO 为例,允许错误率是 0.1%,若实际错误率达到 1.44%,燃尽率就是 14.4,说明按这个速度持续下去,30 天的预算会在两天左右烧完。它把错误预算从月底结算的报表,变成了可以实时告警的信号。

基本信息

定义burn rate = 实际错误率 / (1 − SLO)
典型组合多窗口多燃尽率,如 14.4 倍 1 小时与 6 倍 6 小时
换算关系14.4 倍持续 1 小时约消耗 30 天预算的 2%,6 倍持续 6 小时约消耗 5%
适用前提服务已有明确的 SLO 与稳定的 SLI 指标

典型使用场景

  • 替换阈值告警:用预算消耗速度代替凭经验拍出的错误率阈值
  • 快慢双窗口:短窗口发现突发故障,长窗口确认持续劣化
  • 分级通知:高燃尽率进入电话值班,低燃尽率进入工单或群消息
  • 发布保护:发布后燃尽率明显抬升时可自动暂停灰度放量

99.9% SLO 的快慢双窗口判断

99.9% SLO 的快慢双窗口判断
# 快烧:1 小时燃尽率超过 14.4
(1 - sum(rate(http_requests_total{code!~"5.."}[1h]))
     / sum(rate(http_requests_total[1h]))) / 0.001 > 14.4

# 慢烧:6 小时燃尽率超过 6
(1 - sum(rate(http_requests_total{code!~"5.."}[6h]))
     / sum(rate(http_requests_total[6h]))) / 0.001 > 6

# 两条规则都应设置 for 持续时长,避免瞬时尖刺直接叫醒值班
长窗口确认确实在持续消耗,短窗口确认现在就消耗得急,两者同时成立再触发高等级告警,可以明显降低误报与漏报。
阈值乘数要按自己的 SLO 与窗口长度换算,照抄其他团队的数值会失真;窗口过短则会让偶发尖刺频繁触发。

窗口组合的使用方式

  • 快速发现:短窗口高倍率用于捕捉突发故障,通常在十分钟内即可触发
  • 持续劣化:长窗口低倍率用于发现缓慢泄漏与容量不足
  • 控制噪音:按级别搭配不同窗口,避免偶发尖刺直接叫醒值班
  • 与预算联动:燃尽率告警的处理结论要落到修复优先级上
多窗口的本质是用两个时间尺度交叉验证:只保留其中一个尺度,都会在灵敏度与稳定性之间顾此失彼。

易错点

  • 直接照搬 14.4/6 这两个乘数:它们对应特定 SLO 与窗口长度,换目标后需要重新推导
  • 只用长窗口:突发故障要等很久才触发,处置窗口被压缩
  • 只用短窗口:偶发抖动频繁告警,值班同学很快会对这类通知脱敏
  • SLI 本身不稳定:分母口径漂移时燃尽率上下跳动,先修指标再上告警

数据来源与参考

  • Google SRE Workbook · Alerting on SLOs(多窗口多燃尽率)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌