事故响应基础:MTTR、MTBF、SLO/SLI/SLA 核心概念

在故障链路追踪与事故响应体系中,MTTR、MTBF、SLO/SLI/SLA 是衡量系统可靠性、响应效率与服务质量的核心指标。理解这些概念的定义、计算方式及相互关系,是构建标准化事故响应流程的前提。

1. 核心指标定义与计算

指标 全称 定义 计算公式 目标
MTTR Mean Time To Repair 平均修复时间,从故障发生到恢复服务的时间 总故障修复时间 / 故障次数 越小越好
MTBF Mean Time Between Failures 平均无故障时间,两次故障之间的正常运行时长 总运行时间 / 故障次数 越大越好
SLI Service Level Indicator 服务等级指标,衡量服务质量的原始数据 例如:请求成功率、延迟 P99 如实测量
SLO Service Level Objective 服务等级目标,SLI 的目标阈值 例如:99.9% 请求成功 达成目标
SLA Service Level Agreement 服务等级协议,对外承诺的合同条款 例如:99.95% 可用性,否则赔偿 必须满足
关键认知:MTTR 衡量事故响应速度,MTBF 衡量系统稳定性;SLO 是内部工程目标,SLA 是外部合同红线。故障链路追踪应同时覆盖 MTTR 的每个阶段与 MTBF 的间隔期。

2. MTTR 分解:事故响应的时间线

MTTR 并非单一指标,而是由多个子阶段构成。在标准模板驱动的事故响应中,每个阶段都有对应的追踪节点。

  • MTTD(Mean Time to Detect):从故障发生到被监控系统检测到的时间。
  • MTTA(Mean Time to Acknowledge):从检测到到值班人员确认响应的时间。
  • MTTI(Mean Time to Identify):从确认响应到定位根因的时间。
  • MTTF(Mean Time to Fix):从定位根因到完成修复的时间。
  • MTTV(Mean Time to Verify):从修复完成到验证服务恢复的时间。
实践建议:在故障链路追踪中,为每个子阶段设置独立的追踪标签(如 detection_ts、ack_ts、fix_ts),便于事后计算各阶段耗时,识别瓶颈。

3. SLO/SLI/SLA 与故障链路的关系

故障链路追踪不仅用于事后复盘,更应实时关联 SLO 燃烧率。当 SLI 持续偏离 SLO 时,系统应自动触发事故响应流程。

SLO/SLI/SLA 与故障链路追踪联动模型 SLI 数据采集 延迟 / 错误率 / 吞吐 SLO 燃烧率评估 预算窗口 / 燃烧速率 事故响应触发 PagerDuty / 值班组 故障链路追踪(Trace) Span 1: 网关超时 → Span 2: 服务降级 → Span 3: 数据库连接池耗尽 Span 4: 熔断触发 → Span 5: 重试风暴 → Span 6: 全局故障 每个 Span 携带 SLI 上下文:延迟、状态码、错误类型 SLA 合同:99.95% 可用性,月度赔付阈值 故障链路追踪结果作为 SLA 审计证据 说明:SLI 数据驱动 SLO 评估,SLO 燃烧触发事故响应,故障链路追踪记录全过程,最终支撑 SLA 审计

4. MTBF 与变更窗口的关联

MTBF 直接反映系统的内在稳定性。在标准模板驱动的事故响应中,变更窗口是影响 MTBF 的关键因素:

  • 变更频率:高频变更会降低 MTBF,需配合灰度发布与自动化测试。
  • 变更范围:大范围变更引入的未知风险更多,应拆分为小批量。
  • 变更回滚:快速回滚能力可缩短 MTTR,间接保护 MTBF 统计。
常见误区:不要将 MTBF 与 SLO 直接挂钩。MTBF 是运维指标,SLO 是用户体验指标。一个系统可能 MTBF 很高(很少宕机),但 SLO 很低(响应缓慢)。故障链路追踪应同时关注两者。

5. 指标在事故响应模板中的应用

事故阶段 追踪指标 模板字段示例 关联概念
检测 MTTD detection_source、alert_ts SLI 阈值触发
响应 MTTA responder_id、ack_ts SLO 燃烧率
定位 MTTI root_cause_span、identify_ts 故障链路追踪
修复 MTTF fix_action、fix_ts 变更窗口
验证 MTTV verify_method、verify_ts SLO 恢复验证
复盘 MTBF last_failure_ts、interval_days 变更审计

6. 实践案例:SLO 燃烧触发事故响应

假设某 API 服务的 SLO 为 99.9% 请求成功率(30 天滚动窗口),SLI 实时测量值为 99.5%。此时燃烧率超过阈值,系统自动执行:

  1. SLI 告警:Prometheus 检测到错误率上升,触发 Alertmanager。
  2. SLO 评估:燃烧率计算显示剩余预算将在 2 小时内耗尽。
  3. 事故创建:自动创建事故工单,携带当前故障链路 Trace ID。
  4. MTTR 追踪:从事故创建开始计时,记录每个子阶段时间戳。
  5. 修复验证:修复后持续监控 SLI 恢复至 SLO 阈值以上,关闭事故。
模板驱动要点:在事故响应模板中预置 SLO 燃烧率字段、SLI 趋势图链接、Trace ID 输入框,确保每次事故都能自动关联可观测性数据,减少人工操作。