3. 燃烧率(Burn Rate)定义:Error Budget 消耗速度的量化指标

燃烧率(Burn Rate)是衡量 Error Budget 消耗速度的核心指标,它回答了“我们的错误预算正在以多快的速度被消耗”这一关键问题。通过燃烧率,SRE 团队可以将抽象的 SLO 合规状态转化为具体的、可量化的风险等级,从而触发不同级别的预警和响应动作。

3.1 燃烧率的计算公式

燃烧率的计算逻辑非常直观:在给定的时间窗口内,已消耗的 Error Budget 总量除以该时间窗口的长度。其标准公式如下:

Burn Rate = 消耗的 Error Budget / 时间窗口长度

其中:

  • 消耗的 Error Budget:在时间窗口内,实际发生的不可用事件(如错误请求、延迟超标、故障时长)所消耗的 Error Budget 总量。
  • 时间窗口长度:用于计算燃烧率的时间跨度,通常以分钟、小时或天为单位。

在实际工程中,燃烧率通常通过以下方式计算:

Burn Rate = (1 - 实际SLI值) / (1 - SLO目标值)

或者更精确地,基于事件计数:

Burn Rate = (错误事件数 / 总事件数) / (1 - SLO目标值)

示例: 假设某服务的 SLO 目标为 99.9%(即允许 0.1% 的错误率)。在过去 1 小时内,实际错误率为 0.5%。则燃烧率 = 0.5% / 0.1% = 5。这意味着 Error Budget 的消耗速度是“预算允许速度”的 5 倍。

3.2 燃烧率等级:慢速、中速、快速

为了将燃烧率转化为可操作的预警信号,SRE 实践通常将燃烧率划分为三个等级:慢速、中速和快速。每个等级对应不同的风险程度、响应时间和处置策略。

燃烧率等级 燃烧率范围 风险含义 典型响应时间 预警级别
慢速(Slow) 1x ~ 2x Error Budget 消耗速度略高于预算,长期累积可能威胁 SLO 数小时 ~ 数天 通知 / 低优先级工单
中速(Medium) 2x ~ 10x Error Budget 消耗速度明显过快,若不干预将在数小时内耗尽 30分钟 ~ 2小时 告警 / 中优先级响应
快速(Fast) 10x 以上 Error Budget 正在被快速消耗,可能在几分钟内耗尽,属于严重事件 5分钟 ~ 30分钟 紧急告警 / 立即响应

实践建议: 燃烧率等级的阈值并非固定不变,应根据服务的业务重要性和 SLO 窗口长度进行调整。对于核心支付服务,建议将“快速”阈值下调至 5x;对于非关键日志服务,可适当放宽至 15x。

3.3 燃烧率与 Error Budget 消耗周期的关系

理解燃烧率等级的关键在于将其与 Error Budget 的消耗周期联系起来。下图展示了不同燃烧率下 Error Budget 随时间的变化趋势:

不同燃烧率等级下的 Error Budget 消耗曲线 剩余 Error Budget (%) 时间 0% 50% 100% 慢速 (1.5x) 中速 (5x) 快速 (15x) 说明:燃烧率越高,Error Budget 消耗曲线越陡峭,留给响应团队的时间窗口越短

3.4 燃烧率等级的实际应用场景

不同的燃烧率等级对应不同的运维场景和响应策略。下表总结了各等级在实际生产环境中的典型表现:

燃烧率等级 典型场景 Error Budget 耗尽时间 推荐响应动作
慢速 偶发的小规模故障、部分用户请求延迟增加、非核心功能降级 数天 ~ 数周 创建工单、安排常规排查、纳入迭代计划
中速 区域性网络问题、数据库慢查询、缓存命中率下降、部分实例异常 数小时 ~ 1天 立即组建响应小组、启动应急流程、考虑回滚或限流
快速 全站宕机、关键服务不可用、大规模配置错误、安全攻击 数分钟 ~ 1小时 立即触发紧急响应、全员介入、执行故障切换或降级方案

关键提醒: 燃烧率等级是动态的,不应仅依赖单一时间点的燃烧率值。建议结合多时间窗口(如 1 小时、6 小时、24 小时)的燃烧率进行综合判断,避免因瞬时波动导致误告警。

3.5 燃烧率与 SLO 窗口的联动关系

燃烧率的实际影响取决于 SLO 窗口的长度。相同的燃烧率在不同窗口下,对 Error Budget 的消耗速度截然不同。下图展示了这种联动关系:

燃烧率与 SLO 窗口的联动关系 30天窗口 慢速 (1.5x) 耗尽时间:~20天 响应:充裕 中速 (5x) 耗尽时间:~6天 响应:较充裕 快速 (15x) 耗尽时间:~2天 响应:需关注 7天窗口 慢速 (1.5x) 耗尽时间:~4.7天 响应:较充裕 中速 (5x) 耗尽时间:~1.4天 响应:需关注 快速 (15x) 耗尽时间:~11小时 响应:紧急 1天窗口 慢速 (1.5x) 耗尽时间:~16小时 响应:需关注 中速 (5x) 耗尽时间:~4.8小时 响应:紧急 快速 (15x) 耗尽时间:~1.6小时 响应:立即 结论:SLO 窗口越短,相同燃烧率下的风险等级越高,响应紧迫性越强

3.6 燃烧率计算的最佳实践

  1. 多窗口并行计算:同时计算 1 小时、6 小时和 24 小时窗口的燃烧率,避免单一窗口的误判。
  2. 滑动窗口 vs 固定窗口:优先使用滑动窗口计算,避免固定窗口在边界处产生突变。
  3. 燃烧率归一化:将不同 SLO 目标的燃烧率归一化到同一尺度,便于跨服务对比。
  4. 历史基线对比:将当前燃烧率与历史同期基线对比,识别异常波动。

核心要点: 燃烧率是 Error Budget 管理的“速度表”。慢速燃烧率提示长期趋势,中速燃烧率触发常规响应,快速燃烧率要求立即行动。掌握燃烧率的定义和等级划分,是构建 SLO 风险预警体系的第一步。