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 时间线对齐,形成可自动验证的复盘口径:

MTTR 分解与分布式追踪时间线映射 T0 T1 T2 T3 T4 MTTD 故障发生 → 发现 MTTI 发现 → 定位根因 MTTF 定位 → 修复完成 验证 修复 → 服务恢复 分布式追踪对应层 完整 Trace(根 Span) Span: 入口请求 Span: 认证 Span: 数据库超时 Span: 重试 Span: 恢复 复盘口径自动验证逻辑: • 通过 Trace 中首个异常 Span 的开始时间戳 - 故障发生时间戳 = MTTD • 通过根因 Span 的结束时间戳 - 首个异常 Span 的开始时间戳 = MTTI

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 中的机器时间戳作为自动验证的数据源。

2.6 本章小结