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