2、核心概念:MTTR 定义与分解(MTTD、MTTI、MTTF、MTTR)、SLO/SLI 与复盘口径
在分布式系统可观测性与质量门禁体系中,MTTR(Mean Time to Resolve,平均修复时间)是衡量故障恢复效率的核心指标。然而,仅关注 MTTR 的最终数值远远不够——必须将其拆解为多个子阶段,并与 SLO/SLI 体系联动,才能形成可自动验证的复盘口径。
2.1 MTTR 的完整分解模型
MTTR 并非单一时间点,而是从故障发生到完全恢复的全链路时间总和。业界通常将其分解为以下四个子指标:
| 指标 | 全称 | 定义 | 典型触发事件 |
|---|---|---|---|
| MTTD | Mean Time to Detect | 从故障发生到被监控系统或人工发现的时间 | 告警触发、日志异常检测、用户反馈 |
| MTTI | Mean Time to Identify | 从发现故障到定位根因的时间 | 分布式追踪链路分析、指标下钻 |
| MTTF | Mean Time to Fix | 从定位根因到完成修复的时间 | 代码回滚、配置变更、扩容操作 |
| MTTR | Mean Time to Resolve | 从故障发生到服务完全恢复的总时间 | MTTD + MTTI + MTTF + 验证时间 |
关键认知:在质量门禁场景中,MTTR 的复盘口径必须精确到每个子阶段的耗时,否则无法判断瓶颈在“发现慢”、“定位慢”还是“修复慢”。分布式追踪的 span 时间戳是自动计算这些子阶段的唯一可信数据源。
2.2 MTTR 分解与分布式追踪的映射关系
下图展示了 MTTR 各子阶段如何与分布式追踪的 Trace/Span 时间线对齐,形成可自动验证的复盘口径:
2.3 SLO / SLI 与复盘口径的联动
MTTR 的复盘口径不能脱离 SLO/SLI 体系独立存在。SLO(Service Level Objective)定义了服务可接受的质量目标,SLI(Service Level Indicator)则是实际测量的指标值。在质量门禁规则中,MTTR 复盘口径必须与 SLO 目标对齐:
- SLI 指标选择:通常选择与 MTTR 直接相关的指标,如故障恢复时间(Recovery Time)、错误率恢复时长、延迟恢复时长。
- SLO 目标设定:例如“99.9% 的故障在 30 分钟内恢复”,对应 MTTR ≤ 30 分钟。
- 复盘口径自动验证:每次故障复盘时,自动计算实际 MTTR 并与 SLO 阈值比较,输出“通过/未通过”结论。
| 复盘口径维度 | 对应 SLI | 典型 SLO 目标 | 自动验证规则 |
|---|---|---|---|
| MTTD | 检测延迟 | MTTD ≤ 5 分钟 | 告警时间戳 - 故障时间戳 ≤ 300s |
| MTTI | 定位延迟 | MTTI ≤ 10 分钟 | 根因定位时间戳 - 告警时间戳 ≤ 600s |
| MTTF | 修复延迟 | MTTF ≤ 15 分钟 | 修复完成时间戳 - 定位时间戳 ≤ 900s |
| MTTR | 总恢复时间 | MTTR ≤ 30 分钟 | 恢复时间戳 - 故障时间戳 ≤ 1800s |
2.4 复盘口径自动验证的输入输出
在质量门禁规则驱动下,MTTR 复盘口径的自动验证机制需要明确的输入与输出:
输入:
- 分布式追踪的 Trace ID 列表(包含故障时间段内的所有请求)
- 每个 Span 的开始/结束时间戳(精度到毫秒)
- 故障事件记录(故障发生时间、告警时间、修复操作时间)
- SLO 阈值配置(MTTD、MTTI、MTTF、MTTR 的目标值)
输出:
- 每个子阶段的耗时(MTTD、MTTI、MTTF、验证时间)
- 总 MTTR 值
- 与 SLO 的对比结果(通过/未通过)
- 瓶颈阶段标识(哪个子阶段超时)
2.5 常见误区与避坑指南
⚠️ 常见误区:
- 误区一:将 MTTF 与 MTTR 混淆。MTTF 仅包含修复时间,MTTR 包含从故障发生到恢复的全过程。
- 误区二:忽略验证时间。修复完成不代表服务已恢复,验证时间(如灰度验证、监控确认)必须计入 MTTR。
- 误区三:SLO 目标与 MTTR 子阶段不匹配。例如 SLO 只定义了总 MTTR,但未定义 MTTD 上限,导致发现延迟成为瓶颈却无法自动识别。
- 误区四:依赖人工打点而非分布式追踪时间戳。人工记录的时间存在偏差,必须使用 Trace 中的机器时间戳作为自动验证的数据源。