SLA 指标详解:TTR、TTF、升级时间与达成率

指标定义是 SLA 管理的根基。定义不清楚,考核就是空谈。我见过不少团队,SLA 文件写了几十页,但一线对不上口径,扯皮不断。

另一个问题是定义脱离实际。指标定得太高,团队永远达不到;定得太低,又失去约束力。

我个人习惯,在定指标前,先把每个指标的含义、起点和终点的判定标准,一条条写在纸上,大家当面达成共识。嗯,这步至关重要。

1. 响应时间(TTR)

响应时间,说白了,就是从告警触发到有人确认接手,这段时间。

请注意,响应不等于解决。我刚开始带团队时,有个运维同学告警一响就冲上去修,但忘了先响应。结果 SLA 统计下来,响应时间全红。

核心定义
TTR = 告警确认时间 - 告警产生时间

常见的响应行为包括:

  • 点击“确认告警”按钮
  • 在群内回复“收到,我来处理”
  • 创建 JIRA/工单并指派
我的建议:采用“自动分配 + 手动确认”双重机制。系统先按责任组分配,人再确认,TTR 从手动确认那一刻开始算。
避坑指南:我曾经碰到一个项目,机器自动确认就算 TTR。结果大量告警被系统批量确认,但根本没人看。那之后的策略是,必须有人工确认动作。

响应时间的参考阈值,按告警级别不同有差异:

告警级别P0(致命)P1(严重)P2(一般)P3(提示)
响应时间目标5 分钟15 分钟30 分钟当天
说明立即响应快速响应及时响应工作日结束前

2. 解决时间(TTF)

TTF,全称 Time to Fix,指从确认受理到根本解决的时间。它比你想象中更难定义。

比如,一个磁盘满了的告警。你临时清理了几 G,只是暂时恢复了,但没从根本上扩容。这算解决吗?

核心定义
TTF = 根本解决时间 - 告警确认时间

我习惯把解决分为两种:

  • 临时恢复:应用能跑,但问题还在。例如重启服务、临时扩容。
  • 根本解决:问题彻底消除。例如修复代码、永久扩容。
注意重点:在 SLA 统计中,临时恢复不能算作解决。TTF 只承认根本解决的时间。

你想想看,如果临时恢复就算解决,团队可能会陷入“重起一下”的恶性循环。我在项目里踩过一个坑——当时把所有告警的解决时间都设成 30 分钟。结果主机宕机这种的,30 分钟根本搞不定。后来我们按影响范围做了分层:

影响范围目标 TTF典型场景
单实例、非核心2 小时某 Pod OOM
单实例、核心服务1 小时支付服务 Pod 崩溃
集群级别4 小时阿里云 ECS 集群宕机
全站/全链路8 小时CDN 全链路故障

3. 升级时间

升级时间是什么?如果一线在规定时间内搞不定,或者问题超出了处理能力,就得往上升级。

升级可以按时间触发,也可以按条件判断。

我曾经在牵头做 SLA 时,画了这样一张流程图,今天拿出来分享给你。它把几个指标的关系串联了起来:

SLA 指标闭环流程图 告警产生 响应确认(TTR 截止) 超时/无法处理? 问题处理(TTF 计时) 升级处理(升级时间) 根本解决? 告警闭环(TTF 截止) 回到处理 说明: 升级时间 = 触发升级时刻 - 告警产生时刻

关于升级的触发条件,我常用的策略是:

  • 时间触发:超过 TTR 目标,一线未确认,自动升级给二线。
  • 条件触发:一线尝试 2 次以上仍未根本解决,手动或自动升级。
  • 业务层触发:告警影响核心交易,直接升级到技术总监。
升级时间的计算:从告警产生到触发升级的时间段。注意,如果同级多次转派,但未升级,不记入升级时间。只有跨越层级才算。

4. SLA 达成率计算

SLA 达成率,就是考核周期内,达标告警数占总告警数的比例。

公式
SLA 达成率 = (SLA 达成的告警数 ÷ 总告警数) × 100%

单维度计算

假设某月有 100 条 P0 告警,其中 85 条在 5 分钟内响应,那么响应时间 SLA 达成率为 85%。

多维度聚合

实际考核通常是打分的组合。例如:

  • 响应时间权重:30%
  • 解决时间权重:50%
  • 升级次数权重:20%

我习惯这样加权去算。举个例子:

响应时间达成率 90%,解决时间达成率 80%,升级次数达标率 100%。

那么综合 SLA 达成率 = 0.9×0.3 + 0.8×0.5 + 1.0×0.2 = 0.27 + 0.40 + 0.20 = 87%。

避坑提醒:我曾经见过一个团队,把 SLA 达成率目标设成 99.9%,但连日志都采不齐,统计周期内告警数都不准。那之后我们的原则是:基础数据不准,就不谈达成率。

指标关系速查

指标缩写起始点终止点核心关注
响应时间TTR告警产生人工确认响应速度
解决时间TTF人工确认根本解决解决质量
升级时间—告警产生升级触发升级时效
SLA 达成率—统计周期起统计周期止整体达标

很多团队光盯着 SLA 达成率这个数字,忽略了背后的 TTR 和 TTF。其实你可以把它们看成一个漏斗:告警进来,经过响应、解决、升级几个关卡,最后才到达成率。哪个环节堵了,达成率都不可能好看。

最后说一句实在话:SLA 指标不是用来卡人的,是帮团队对齐预期的。只要定义清楚,落地才有依据。