SLI(服务等级指标)选择
SLI 是所有可用性管理的基石。没有好的 SLI,SLO 就是空中楼阁,SLA 就是一纸空文。
很多人以为 SLI 就是「监控指标」,把 CPU、内存、网络流量都往 SLI 列表里塞。导致 SLI 列表越来越长,但真正反映用户体验的指标反而淹没在噪音里。
SLI 的核心原则只有一条:只选那些用户能感知到的指标。
SLI 的四大类型
1. 可用性类 SLI
定义:请求能否成功完成。
2. 延迟类 SLI
定义:请求的响应速度是否在用户可接受范围内。
延迟 SLI 的陷阱:TP99 是最常被引用的指标,但也是最容易被误解的。TP99 延迟好不等于所有用户都体验良好——那剩下的 1% 用户可能正经历着灾难性的慢响应。
3. 吞吐量类 SLI
定义:系统在单位时间内能处理多少请求。
4. 准确性类 SLI
定义:系统返回的数据是否正确。
不同服务类型的 SLI 选择
面向用户的 HTTP API
后台数据处理服务
数据存储服务
SLI 选择中的常见错误
错误一:SLI 列表过长
问题:监控了几十个指标,但没有一个能真正回答「用户能用吗?」
正确做法:SLI 列表越短越好。通常一个服务 3~5 个 SLI 就足够了。问自己:「如果只能监控 3 个指标,我会选哪 3 个?」
错误二:用技术指标代替用户体验指标
问题:监控 JVM 堆内存、GC 次数、线程池大小——这些数字对用户毫无意义。
正确做法:用户只关心「请求成功了吗?够快吗?」,把技术指标转化为用户体验指标。
错误三:忽略测量误差
问题:监控数据采集本身有延迟和误差,如果 SLI 设定接近监控精度,就无法准确判断 SLO 是否达标。
正确做法:在 SLI 测量值上留出合理的置信区间,不要把 SLO 设定在监控精度的边界上。
SLI 测量架构
本章总结
核心要点:
- SLI 要选择用户能感知的指标:CPU、内存不是 SLI,请求成功率、延迟才是
- 四大 SLI 类型:可用性、延迟、吞吐量、准确性,根据业务场景选择
- SLI 越少越好:一个服务 3~5 个核心 SLI,远好过几十个技术指标
- SLI 要可测量:选择有明确计算公式、能被监控工具采集的指标
- 定期 review SLI:业务变化后,旧的 SLI 可能不再适用
有了 SLI 和 SLO,错误预算就是把这些数字变成可操作决策的关键工具。下一节我们将讲解如何用错误预算管理发布节奏和团队行为。