可靠性评审报告撰写中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 时,错误预算被消耗;当错误预算耗尽,团队应停止发布新功能,优先投入可靠性改进。这一机制将可靠性目标与开发节奏直接挂钩。

SLI / SLO / 错误预算 核心三角关系 SLI(服务等级指标) 实际测量值:99.92% SLO(服务等级目标) 目标阈值:99.9% 错误预算 容错空间:0.1% 当 SLI 持续低于 SLO → 消耗错误预算 → 预算耗尽 → 停止发布,优先修复可靠性 公式:错误预算 = 1 - SLO

1.4 三者协同的工程意义

SLI、SLO 和错误预算共同构建了一个闭环反馈系统:

  1. 定义: 选择关键 SLI,设定合理的 SLO。
  2. 测量: 持续采集 SLI 数据,与 SLO 进行对比。
  3. 决策: 根据错误预算消耗情况,决定是否允许发布新功能。
  4. 改进: 当错误预算不足时,投入工程资源提升 SLI。
常见误区: 不要为所有指标都设定 SLO。只对直接影响用户体验的 SLI 设定 SLO,避免目标过多导致管理混乱。

通过这一机制,可靠性不再是事后补救,而是融入日常开发流程的可量化、可管理的工程实践。