可靠性评审报告撰写中SLI口径案例的工程解析 - 第1节
1.1 什么是服务等级指标(SLI)
服务等级指标(Service Level Indicator, SLI)是对服务某个质量维度的直接可量化度量。它回答一个最基本的问题:“服务现在表现如何?” 在可靠性工程中,SLI 是客观、可采集的原始数据,通常以比率、计数或延迟分布的形式呈现。
核心定义: SLI 是服务可靠性的“测量仪表盘”,它把用户感知的服务质量转化为可观测的数值。
常见的 SLI 维度包括:
- 可用性: 请求成功比例,如 HTTP 200 响应占比。
- 延迟: 请求响应时间,如 P99 延迟 < 200ms。
- 吞吐量: 单位时间处理的请求数,如 QPS。
- 错误率: 请求失败比例,如 5xx 错误占比。
- 饱和度: 资源使用程度,如 CPU 使用率、内存占用。
| SLI 维度 | 典型指标 | 采集方式 |
|---|---|---|
| 可用性 | 请求成功率 = 成功请求数 / 总请求数 | 负载均衡器日志、应用埋点 |
| 延迟 | P50 / P95 / P99 响应时间 | APM 工具、服务端计时 |
| 吞吐量 | 每秒请求数(RPS) | 网关监控、计数器 |
| 错误率 | HTTP 5xx 占比 | 日志聚合、健康检查 |
| 饱和度 | CPU 使用率、队列深度 | 系统指标采集(如 Prometheus) |
1.2 SLI 在可靠性工程中的核心地位
SLI 是整个可靠性工程的数据基石。没有 SLI,所有关于“服务是否可靠”的讨论都只能停留在主观感受层面。SLI 将模糊的“系统稳定”转化为可比较、可追踪的数值,从而驱动以下关键活动:
- 客观评估: 用数据代替“感觉”,统一团队对服务质量的认知。
- 趋势分析: 通过 SLI 时间序列,发现性能退化或异常模式。
- 故障定位: 当 SLI 出现异常时,快速缩小问题范围。
- 容量规划: 基于 SLI 的饱和度指标,预测资源瓶颈。
工程实践: 选择 SLI 时,应优先关注“用户可见”的指标。例如,对于 Web 服务,首页加载延迟比后台批处理延迟更重要。
1.3 SLI 与 SLO、错误预算的关系
SLI、SLO(服务等级目标)和错误预算构成了可靠性工程的核心三角模型。三者之间的关系可以概括为:
- SLI(测量): 实际观测到的服务质量数值。
- SLO(目标): 为 SLI 设定的目标阈值,是团队承诺的服务水平。
- 错误预算(容错): SLO 允许的失败空间,即 1 - SLO。
错误预算的计算公式为:
错误预算 = 1 - SLO
例如:SLO = 99.9%,则错误预算 = 0.1%
当 SLI 持续低于 SLO 时,错误预算被消耗;当错误预算耗尽,团队应停止发布新功能,优先投入可靠性改进。这一机制将可靠性目标与开发节奏直接挂钩。
1.4 三者协同的工程意义
SLI、SLO 和错误预算共同构建了一个闭环反馈系统:
- 定义: 选择关键 SLI,设定合理的 SLO。
- 测量: 持续采集 SLI 数据,与 SLO 进行对比。
- 决策: 根据错误预算消耗情况,决定是否允许发布新功能。
- 改进: 当错误预算不足时,投入工程资源提升 SLI。
常见误区: 不要为所有指标都设定 SLO。只对直接影响用户体验的 SLI 设定 SLO,避免目标过多导致管理混乱。
通过这一机制,可靠性不再是事后补救,而是融入日常开发流程的可量化、可管理的工程实践。