3. SLO台账基础:SLO、SLI、Error Budget定义,台账的常见字段

在可观测性工程中,SLO台账是连接技术指标与业务承诺的核心载体。本章将系统讲解SLO台账的三大基石——SLI、SLO、Error Budget,并拆解台账中每个字段的实际含义与填写规范。

3.1 核心概念定义

术语 全称 定义 示例
SLI Service Level Indicator 服务等级指标,是衡量服务质量的具体量化指标 请求延迟P99、错误率、吞吐量
SLO Service Level Objective 服务等级目标,是对SLI设定的目标阈值 99.9%的请求延迟<200ms
Error Budget 错误预算 允许服务不达标的时间或次数上限 30天窗口内允许0.1%的失败
关键关系:SLI是原始测量值,SLO是目标承诺,Error Budget是SLO与100%之间的差值空间。三者构成“测量→承诺→容错”的闭环。

3.2 SLI:服务等级指标

SLI是SLO台账中最底层的原始数据来源。常见的SLI类型包括:

  • 延迟(Latency):请求响应时间,通常以P50、P95、P99分位值表示
  • 错误率(Error Rate):失败请求占总请求的比例,如HTTP 5xx占比
  • 吞吐量(Throughput):单位时间内处理的请求数(RPS/QPS)
  • 可用性(Availability):服务正常响应的时间占比
  • 饱和度(Saturation):资源使用程度,如CPU、内存、连接池占用率
实践建议:在Jaeger链路数据中,SLI通常通过span标签(如http.status_code、span.duration)聚合计算。建议每个服务至少定义2-3个核心SLI。

3.3 SLO:服务等级目标

SLO将SLI转化为可量化的业务承诺。SLO的常见表达格式为:

# 格式:[时间窗口内] [SLI指标] [比较条件] [目标值]
示例1:过去30天内,P99延迟 ≤ 200ms 的比例 ≥ 99.9%
示例2:过去7天内,HTTP 5xx错误率 ≤ 0.1%

SLO目标值的选择需平衡用户体验与运维成本:

  • 99.9%(三个9):常见于内部工具、非关键业务
  • 99.99%(四个9):适用于核心业务API、支付服务
  • 99.999%(五个9):电信、金融核心系统,运维成本极高

3.4 Error Budget:错误预算

Error Budget = 100% - SLO目标值。它代表在SLO时间窗口内,服务可以“不达标”的最大容忍量。

SLO目标 Error Budget(30天窗口) 允许故障时间
99.9% 0.1% 约43.2分钟
99.99% 0.01% 约4.32分钟
99.999% 0.001% 约25.9秒
常见误区:Error Budget不是“允许故障的额度”,而是“允许消耗的容错空间”。一旦Error Budget耗尽,应触发服务降级或冻结发布,而非继续容忍故障。

3.5 SLO台账常见字段

一个标准的SLO台账通常包含以下核心字段:

字段名 说明 示例值
服务名 被监控的服务标识,与Jaeger服务名一致 order-service
SLO目标 量化的服务等级目标 99.9%
时间窗口 SLO评估的时间范围 30d(滚动窗口)
当前合规率 当前时间窗口内实际达标比例 99.85%
SLI类型 使用的指标类型 latency_p99
Error Budget剩余 当前剩余的错误预算百分比 0.05%
状态 合规/告警/违规 合规

3.6 SLO台账数据流关系图

SLO台账数据流与字段关系 Jaeger 链路数据 span延迟 / 状态码 / 错误 SLI 指标聚合 P99延迟 / 错误率 SLO 台账 服务名 / 目标 / 合规率 台账字段展开 服务名 SLO目标 时间窗口 当前合规率 SLI类型 Error Budget剩余 状态

3.7 台账字段填写规范

在实际运维中,台账字段的填写需遵循以下规范:

  • 服务名:必须与Jaeger中的service.name标签严格一致,避免大小写或连字符差异
  • SLO目标:使用百分比格式,保留至少一位小数(如99.9%)
  • 时间窗口:推荐使用滚动窗口(如30d),避免日历窗口带来的边界效应
  • 当前合规率:由SLI聚合计算得出,需与Jaeger指标源保持相同的时间对齐
  • Error Budget剩余:计算公式为 Error Budget剩余 = SLO目标 - 当前合规率(当合规率低于目标时,剩余为负值)
实战要点:在Jaeger中,通过span.duration和http.status_code标签可以快速计算延迟SLI和错误率SLI。建议在台账中额外记录“SLI计算口径”字段,避免不同团队对同一指标的理解偏差。

3.8 合规率与Error Budget的联动关系

合规率与Error Budget联动关系 100% SLO目标 99.9% 当前合规率 99.85% Error Budget剩余:0.05%(约21.6分钟)

上图展示了合规率与Error Budget的直观关系:

  • 当当前合规率 ≥ SLO目标时,Error Budget为正数,服务处于健康状态
  • 当当前合规率 < SLO目标时,Error Budget为负数,服务处于违规状态,需立即介入
  • Error Budget的消耗速度决定了故障响应的紧急程度
台账管理建议:建议在台账中增加“Error Budget消耗速率”字段,用于预测当前消耗速度下,剩余预算还能支撑多久。结合Jaeger的实时链路数据,可以提前预警潜在的SLO违规风险。