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 随时间的变化趋势:
3.4 燃烧率等级的实际应用场景
不同的燃烧率等级对应不同的运维场景和响应策略。下表总结了各等级在实际生产环境中的典型表现:
| 燃烧率等级 | 典型场景 | Error Budget 耗尽时间 | 推荐响应动作 |
|---|---|---|---|
| 慢速 | 偶发的小规模故障、部分用户请求延迟增加、非核心功能降级 | 数天 ~ 数周 | 创建工单、安排常规排查、纳入迭代计划 |
| 中速 | 区域性网络问题、数据库慢查询、缓存命中率下降、部分实例异常 | 数小时 ~ 1天 | 立即组建响应小组、启动应急流程、考虑回滚或限流 |
| 快速 | 全站宕机、关键服务不可用、大规模配置错误、安全攻击 | 数分钟 ~ 1小时 | 立即触发紧急响应、全员介入、执行故障切换或降级方案 |
关键提醒: 燃烧率等级是动态的,不应仅依赖单一时间点的燃烧率值。建议结合多时间窗口(如 1 小时、6 小时、24 小时)的燃烧率进行综合判断,避免因瞬时波动导致误告警。
3.5 燃烧率与 SLO 窗口的联动关系
燃烧率的实际影响取决于 SLO 窗口的长度。相同的燃烧率在不同窗口下,对 Error Budget 的消耗速度截然不同。下图展示了这种联动关系:
3.6 燃烧率计算的最佳实践
- 多窗口并行计算:同时计算 1 小时、6 小时和 24 小时窗口的燃烧率,避免单一窗口的误判。
- 滑动窗口 vs 固定窗口:优先使用滑动窗口计算,避免固定窗口在边界处产生突变。
- 燃烧率归一化:将不同 SLO 目标的燃烧率归一化到同一尺度,便于跨服务对比。
- 历史基线对比:将当前燃烧率与历史同期基线对比,识别异常波动。
核心要点: 燃烧率是 Error Budget 管理的“速度表”。慢速燃烧率提示长期趋势,中速燃烧率触发常规响应,快速燃烧率要求立即行动。掌握燃烧率的定义和等级划分,是构建 SLO 风险预警体系的第一步。