3. 可靠性评审核心指标:MTTR、MTBF、错误预算、SLO/SLI 在评审中的应用

在变更冻结闸口评审中,仅凭主观经验判断风险远远不够。SRE 团队必须依赖一组量化的可靠性指标,将评审从“感觉是否安全”升级为“数据是否达标”。本章聚焦四个核心指标——MTTR、MTBF、错误预算、SLO/SLI,并说明它们在冻结闸口评审中的具体用法。

3.1 指标定义与评审角色

指标 全称 定义 在冻结评审中的角色
MTTR Mean Time To Repair 从故障发生到恢复的平均时长 评估团队在冻结期间能否快速止血
MTBF Mean Time Between Failures 两次故障之间的平均正常运行时长 判断系统固有稳定性,决定冻结窗口长度
错误预算 Error Budget SLO 允许的最大不可用时间 冻结前剩余预算是否充足,决定是否放行
SLO/SLI Service Level Objective / Indicator 目标值 vs 实际测量值 定义评审的准入/准出门限
评审原则: 四个指标必须联合使用,单一指标无法全面评估冻结风险。例如 MTBF 很高但错误预算已耗尽,仍应拒绝变更。

3.2 MTTR:冻结期间的恢复能力底线

MTTR 衡量的是故障响应与恢复速度。在变更冻结期间,如果引入的变更导致故障,团队必须在更短的时间内完成回滚或修复,因为冻结期通常伴随人员缩减或值班轮换。

  • 评审阈值: 若当前服务的 MTTR > 4 小时,冻结期间必须安排至少 2 名 On-Call 工程师。
  • Jaeger 联动: 通过追踪分析历史故障的恢复阶段耗时,识别恢复链路中的瓶颈(如镜像拉取慢、数据库回滚脚本未预置)。
  • 典型场景: 某支付服务 MTTR 为 12 分钟,评审通过;另一日志服务 MTTR 为 3.5 小时,评审要求补充回滚预案。

3.3 MTBF:判断冻结窗口的合理长度

MTBF 反映系统的固有稳定性。MTBF 越长,系统越可靠,冻结窗口可以适当延长;反之,冻结窗口应缩短,并增加人工巡检频率。

MTBF 区间 建议冻结窗口 评审动作
> 720 小时(30 天) ≤ 7 天 正常放行,无需额外监控
168 ~ 720 小时(7~30 天) ≤ 3 天 要求增加 Jaeger 采样率至 50%
< 168 小时(7 天) ≤ 1 天 拒绝冻结,或要求全量灰度 + 人工值守
注意: MTBF 计算应排除计划内维护窗口,否则会高估系统稳定性。建议从 Jaeger 的“服务健康看板”中提取非计划故障间隔。

3.4 错误预算:冻结放行的“余额检查”

错误预算是 SLO 与实际可用性之间的差值。在变更冻结评审中,错误预算相当于风险储备金。预算充足时,即使变更引发少量故障,仍能维持整体 SLO;预算不足时,任何变更都可能直接导致 SLO 违约。

  • 评审公式: 剩余错误预算 ≥ 预计变更影响时间 × 2(安全系数)。
  • 示例: 某服务 SLO 为 99.9%(月错误预算 43.2 分钟),当前已消耗 30 分钟,剩余 13.2 分钟。若变更预计影响 10 分钟,则 13.2 ≥ 20?不满足,评审拒绝。
  • Jaeger 联动: 在 Jaeger 中设置错误预算消耗告警,当消耗速度超过线性预测时,自动触发冻结闸口重新评估。
错误预算消耗与冻结放行决策流程 月度错误预算 已消耗预算 剩余预算 预计变更影响时间 × 2 剩余预算 ≥ 影响时间×2? ✅ 放行变更 ❌ 拒绝冻结

3.5 SLO/SLI:评审的准入与准出门限

SLO(目标)和 SLI(实际测量)构成了评审的量化门限系统。在变更冻结闸口,我们通常设置两级门限:

  • 准入门限: 当前 SLI 必须 ≥ SLO 的 90%。若低于此值,说明系统已处于亚健康状态,不应再引入变更。
  • 准出门限: 变更完成后,SLI 必须恢复到 SLO 的 95% 以上,否则视为变更失败,自动触发回滚。
Jaeger 集成技巧: 将 SLO 门限配置为 Jaeger 的“服务监控”标签。当 SLI 低于准入门限时,Jaeger 自动在追踪中注入“风险标记”,评审人员可在 Trace 详情页直接看到当前服务的 SLO 健康状态。

3.6 四指标联合评审矩阵

在实际评审中,四个指标并非独立决策,而是构成一个联合评估矩阵。以下矩阵展示了不同指标组合下的评审结论:

MTTR MTBF 错误预算 SLO/SLI 评审结论
≤ 30 min ≥ 720 h ≥ 50% ≥ SLO ✅ 放行
≤ 30 min ≥ 720 h ≤ 20% ≥ SLO ⚠️ 有条件放行(需增加值班)
≥ 2 h ≥ 720 h ≥ 50% ≥ SLO ⚠️ 有条件放行(需预置回滚脚本)
≥ 2 h ≤ 168 h ≤ 20% ≤ SLO ❌ 拒绝

3.7 从指标到追踪:Jaeger 数据如何反哺评审

上述指标并非静态数字,它们可以从 Jaeger 的分布式追踪中实时计算:

  • MTTR: 通过追踪中“故障 span”的结束时间戳与“恢复 span”的开始时间戳之差计算。
  • MTBF: 通过追踪中连续两次“错误 span”的时间间隔统计。
  • 错误预算: 通过追踪中 SLI 指标的累计错误计数与总请求数之比实时更新。
  • SLO/SLI: 通过 Jaeger 的“服务健康”仪表板直接导出,支持按时间窗口滑动计算。
Jaeger 追踪数据 → 可靠性指标映射 Jaeger 追踪数据 • Span 时间戳 • 错误标记 • 服务依赖图 • 请求量计数 MTTR MTBF 错误预算 SLO/SLI 评审闸口自动拉取 Jaeger 指标,无需人工填报 每次变更申请自动附带当前指标快照,评审人员直接决策

3.8 评审检查清单(基于指标)

  1. MTTR 检查: 当前服务 MTTR 是否 ≤ 30 分钟?若否,是否已安排额外值班人员?
  2. MTBF 检查: 最近 30 天 MTBF 是否 ≥ 168 小时?若否,冻结窗口是否已缩短?
  3. 错误预算检查: 剩余错误预算是否 ≥ 预计变更影响时间 × 2?
  4. SLO/SLI 检查: 当前 SLI 是否 ≥ SLO 的 90%?变更后是否 ≥ 95%?
  5. Jaeger 数据源检查: 上述指标是否全部来自 Jaeger 实时追踪,而非手工填报?
最佳实践: 将上述检查清单自动化集成到变更审批系统中。当所有指标均通过时,系统自动放行;否则自动升级到人工评审。结合 Jaeger 的 Webhook,每次指标变化时重新评估冻结状态。