3. 可靠性度量基础:SLI、SLO、SLI与评分模型的关系、常见SLI指标

在SRE实践中,没有度量就没有改进。可靠性评分模型的核心输入,正是来自对系统行为的持续、可量化的观测。本章将深入讲解支撑评分模型的三个基本概念:SLI(服务等级指标)、SLO(服务等级目标),以及它们如何与评分模型建立映射关系,并介绍最常见的几类SLI指标。

3.1 SLI:服务等级指标

SLI(Service Level Indicator)是对服务某个特定维度的量化测量。它回答的是“服务现在表现如何”的问题。SLI必须是一个可采集、可计算的数值,通常表示为一段时间内的比率或分布。

  • 定义原则:SLI应直接反映用户体验,而非内部实现细节。
  • 采集方式:通常通过服务端日志、客户端埋点、中间件指标或拨测探针获取。
  • 聚合方式:常见聚合包括平均值、百分位数(如P99)、滑动窗口内的比率等。
实践要点:选择SLI时,优先关注用户最敏感的维度。例如,对于API网关,延迟的P99比平均值更能反映尾部延迟对用户的影响。

3.2 SLO:服务等级目标

SLO(Service Level Objective)是为SLI设定的目标阈值或范围。它回答的是“服务应该表现得多好”的问题。SLO是团队与业务方达成的可靠性契约,也是值班台判断是否触发告警或降级的依据。

概念 定义 示例
SLI 实际测量的指标值 过去1小时内请求延迟P99 = 120ms
SLO SLI应达到的目标边界 延迟P99 ≤ 200ms(月度占比99.9%)
错误预算 SLO允许的不可用时间或错误量 月度允许错误率 = 1 - 99.9% = 0.1%
常见误区:不要将SLO设定得过于严苛(如99.999%),这会导致极高的运维成本和频繁的误告警。SLO应基于业务容忍度与成本权衡后设定。

3.3 SLI与评分模型的关系

可靠性评分模型本质上是一个多维度加权聚合函数。SLI提供原始数据,SLO提供基准线,评分模型则将SLI相对于SLO的偏离程度映射为一个0-100的分数。

映射关系可以概括为以下步骤:

  1. 采集:从监控系统获取各维度的实时SLI值。
  2. 比较:将SLI值与对应的SLO阈值进行比较,计算“健康度”或“达标率”。
  3. 映射:通过预定义的评分函数(如线性、阶梯或对数函数),将健康度转换为分数。
  4. 聚合:按权重(如延迟权重0.4、错误率权重0.4、吞吐量权重0.2)加权求和,得到综合评分。
SLI到评分模型的映射流程 SLI 采集 延迟/错误率/吞吐量 SLO 比较 计算达标率 评分映射 0-100 分数 加权聚合 综合评分 说明: 每个SLI独立评分后,按业务权重加权求和。例如:延迟(0.4) + 错误率(0.4) + 吞吐量(0.2) = 最终可靠性评分。

3.4 常见SLI指标详解

在值班台场景中,最核心的三类SLI指标是:延迟、错误率和吞吐量。它们从不同角度刻画了服务的健康状态。

3.4.1 延迟(Latency)

延迟衡量请求从发出到收到完整响应所花费的时间。延迟的微小增加往往会导致用户体验的显著下降。

  • 常用百分位:P50(中位数)、P95、P99、P999。
  • 采集方式:服务端请求处理时间、客户端感知时间。
  • SLO示例:过去5分钟内,P99延迟 ≤ 500ms。

3.4.2 错误率(Error Rate)

错误率衡量请求处理失败的比率。通常以HTTP 5xx、超时、业务逻辑异常等作为错误判定标准。

  • 计算方式:错误请求数 / 总请求数 × 100%。
  • 注意:需区分客户端错误(4xx)与服务端错误(5xx),SLO通常只针对服务端错误。
  • SLO示例:月度错误率 ≤ 0.1%。

3.4.3 吞吐量(Throughput)

吞吐量衡量系统在单位时间内处理的请求量或数据量。它反映了系统的容量和承载能力。

  • 常用单位:QPS(每秒查询数)、RPS(每秒请求数)、TPS(每秒事务数)。
  • 采集方式:服务端请求计数、消息队列消费速率。
  • SLO示例:核心API的QPS ≥ 1000(在延迟SLO达标的前提下)。
三类SLI指标对比 延迟 P99 ≤ 500ms 用户体验敏感度 错误率 ≤ 0.1% 服务端5xx占比 吞吐量 QPS ≥ 1000 系统容量指标 可靠性评分 = f(延迟, 错误率, 吞吐量)

3.5 指标选择与评分模型设计建议

在设计可靠性评分模型时,并非所有指标都需要纳入。建议遵循以下原则:

  • 精简原则:选择3-5个最能反映用户体验的核心SLI,避免指标过多导致评分难以解读。
  • 可操作性:每个SLI都应有明确的SLO和对应的改进措施。
  • 权重分配:延迟和错误率通常权重较高(各占30%-40%),吞吐量权重相对较低(10%-20%),其余指标(如饱和度、可用性)根据业务特点分配剩余权重。
值班台落地提示:在值班台系统中,每个SLI的实时评分应支持钻取(Drill-down)功能。当综合评分下降时,值班人员应能快速定位到是哪个SLI维度导致的扣分,从而加速故障排查。