2. MTTR 基础概念:定义、关联与 SRE 价值
MTTR(Mean Time to Repair,平均修复时间)是 SRE 领域最核心的可用性指标之一,也是故障响应效率的直接度量。理解 MTTR 的定义、它与 MTBF/MTTF 的关系,以及它在 SRE 体系中的定位,是后续进行 Metric Design 和数据结构重构的前提。
2.1 MTTR 定义与计算口径
MTTR 衡量的是从系统发生故障到完全恢复服务所花费的平均时间。它覆盖了故障发现、定位、修复和验证的全过程。
核心公式:
MTTR = 总修复时间 / 故障次数
其中“总修复时间”通常指从故障告警触发(或用户首次感知)到服务恢复正常的时间窗口总和。
在实际 SRE 复盘口径中,MTTR 可进一步拆解为三个子阶段,每个阶段对应不同的数据采集点:
| 子阶段 | 英文缩写 | 定义 | 典型数据源 |
|---|---|---|---|
| 平均发现时间 | MTTD | 从故障发生到被监控系统或人员识别 | 告警系统、用户反馈 |
| 平均定位时间 | MTTI | 从发现故障到确定根因 | 事件管理平台、日志 |
| 平均修复时间 | MTTRfix | 从确定根因到服务完全恢复 | 变更记录、部署系统 |
口径对齐要点: 在 Metric Design 中,必须明确 MTTR 的起止时间戳定义。例如,是以“告警触发时间”还是“用户首次报障时间”作为起点?不同的口径会导致复盘数据产生 10%~30% 的偏差。
2.2 MTTR 与 MTBF / MTTF 的关系
在可靠性工程中,MTTR 通常与 MTBF(平均故障间隔时间)和 MTTF(平均无故障时间)共同使用,三者构成系统可用性的完整度量体系。
下图展示了三者在系统生命周期中的时序关系:
三者的核心区别与联系如下表所示:
| 指标 | 全称 | 度量对象 | 适用场景 | 与可用性的关系 |
|---|---|---|---|---|
| MTBF | Mean Time Between Failures | 两次故障之间的总时间(含修复时间) | 可修复系统(服务、数据库) | MTBF 越大,系统越稳定 |
| MTTF | Mean Time To Failure | 系统首次发生故障前的正常运行时间 | 不可修复系统(硬件、一次性组件) | MTTF 越大,组件寿命越长 |
| MTTR | Mean Time To Repair | 从故障到恢复的平均耗时 | 所有可修复系统 | MTTR 越小,恢复越快 |
常见误区: 很多团队将 MTBF 误认为“正常运行时间”,实际上 MTBF = 正常运行时间 + MTTR。在 MTTR 较大的场景下,直接用 MTBF 评估稳定性会失真。正确的可用性计算公式为:
Availability = MTBF / (MTBF + MTTR) × 100%
2.3 MTTR 在 SRE 中的核心价值
在 SRE 实践中,MTTR 不仅是事后复盘的关键指标,更是驱动系统可靠性改进的杠杆点。其价值体现在三个层面:
- 故障响应效率的量化标尺:MTTR 将模糊的“响应快慢”转化为可度量、可对比的数字,帮助团队识别响应流程中的瓶颈环节。
- SLO/SLI 体系的支撑指标:在定义服务可用性 SLO 时,MTTR 直接影响错误预算的消耗速度。MTTR 每缩短 1 分钟,在同等故障频率下可用性提升一个数量级。
- 自动化与工具链投资的 ROI 评估:通过追踪 MTTR 子阶段(MTTD、MTTI、MTTRfix)的变化,可以量化告警优化、可观测性建设、自动化运维工具的实际收益。
下图展示了 MTTR 在 SRE 闭环中的位置:
实践建议: 在 Metric Design 阶段,建议将 MTTR 拆解为 MTTD、MTTI、MTTRfix 三个子指标分别建模。这样在复盘时可以直接定位到“发现慢”、“定位慢”还是“修复慢”,从而精准驱动数据结构重构和工具链优化。