2、SLO基础回顾:服务等级目标定义、SLI指标类型(延迟、错误率、吞吐量、饱和度)、SLO燃烧速率

2.1 服务等级目标(SLO)定义

SLO(Service Level Objective)是服务等级协议(SLA)中的核心量化承诺,它基于一个或多个SLI(Service Level Indicator)设定目标阈值。SLO定义了“在特定时间窗口内,服务应达到的可靠性水平”。

SLO的核心公式:

SLO = 良好事件计数 / 总有效事件计数 ≥ 目标百分比

SLO关键属性:

  • 时间窗口:滚动窗口(如30天、28天)或日历窗口(如月度、季度)。
  • 目标阈值:通常表示为“三个9”(99.9%)、“四个9”(99.99%)等。
  • 测量粒度:SLI数据采集的最小时间单位(如1分钟、5分钟)。
  • 合规条件:窗口内满足目标的时间比例。
💡 关键概念: SLO不是“承诺”,而是“目标”。SLA是法律承诺,SLO是内部工程目标。SLO通常比SLA更严格(例如SLA为99.9%,SLO设为99.95%),为违反SLA预留缓冲。

2.2 SLI指标四大类型

SLI(Service Level Indicator)是衡量服务质量的量化指标。Google SRE经典分类将SLI归纳为四大黄金信号:延迟、错误率、吞吐量、饱和度。每个类型对应不同的采集策略和阈值设定方法。

SLI类型 定义 典型测量方式 常见SLO目标 采集难点
延迟 请求从发出到收到完整响应的时间 百分位数(p50, p95, p99) p99 ≤ 200ms 长尾分布、客户端与服务端差异
错误率 失败请求占总请求的比例 HTTP 5xx / 4xx / 超时 / 业务错误码 错误率 ≤ 0.1% 业务错误与基础设施错误区分
吞吐量 单位时间内处理的请求量 RPS(每秒请求数)、TPS(每秒事务数) 峰值吞吐量 ≥ 10000 RPS 突发流量、限流与降级影响
饱和度 资源使用程度,越接近上限越危险 CPU / 内存 / 磁盘IO / 连接池使用率 CPU ≤ 80% 饱和度阈值因系统而异,需动态调整
📌 实践建议: 并非所有服务都需要四个SLI。对于关键用户路径,优先选择延迟和错误率;对于数据管道类服务,优先选择吞吐量和饱和度。

2.3 SLI指标类型关系图

下图展示了四大SLI类型之间的关联关系及其对服务健康状态的影响路径:

SLI四大指标类型关系图 SLI四大黄金信号关系图 服务健康状态 延迟 (Latency) 错误率 (Error Rate) 吞吐量 (Throughput) 饱和度 (Saturation) 高延迟导致超时错误 高吞吐量推高资源饱和度 资源饱和导致延迟增加 说明:四个指标相互影响。延迟升高可能引发错误率上升,吞吐量增加会推高饱和度,饱和度过高又反过来恶化延迟。

2.4 SLO燃烧速率

SLO燃烧速率(Burn Rate)衡量SLO消耗的速度。它表示在给定时间窗口内,实际错误率相对于SLO允许的错误率的倍数。燃烧速率是触发自愈剧本的关键信号。

燃烧速率计算公式:

燃烧速率 = 实际错误率 / (1 - SLO目标百分比)

示例:
SLO = 99.9% → 允许错误率 = 0.1%
实际错误率 = 0.5%
燃烧速率 = 0.5% / 0.1% = 5x

燃烧速率与SLO消耗时间的关系:

燃烧速率 含义 SLO消耗时间(30天窗口) 典型响应级别
1x 刚好在SLO边界运行 30天 无需响应
2x 错误率是允许值的2倍 15天 低优先级告警
5x 错误率是允许值的5倍 6天 中优先级告警
10x 错误率是允许值的10倍 3天 高优先级告警
36x 错误率是允许值的36倍 20小时 紧急响应(P0)
⚠️ 常见误区: 不要只依赖单一燃烧速率阈值。建议使用多窗口燃烧速率检测(如1小时窗口+6小时窗口+24小时窗口),避免短时突发误触发或长时慢速消耗漏报。

2.5 多窗口燃烧速率检测策略

为了平衡检测灵敏度和误报率,SRE实践推荐使用多窗口燃烧速率策略。下图展示了典型的多窗口检测架构:

多窗口燃烧速率检测策略 多窗口燃烧速率检测策略 SLI数据流 1小时窗口 燃烧速率 ≥ 36x 6小时窗口 燃烧速率 ≥ 6x 24小时窗口 燃烧速率 ≥ 2x 逻辑判断:任意窗口触发 OR 条件组合 触发SLO自愈剧本 策略优势:短窗口快速响应突发故障,长窗口捕获慢速消耗,组合判断降低误报率

2.6 SLO与自愈剧本的关联

在自愈剧本设计中,SLO燃烧速率是触发条件,SLI采集链路是数据基础。两者关系如下:

  • SLI采集链路:提供实时、准确的SLI数据,是燃烧速率计算的输入。
  • 燃烧速率:将SLI数据转化为SLO消耗速度,决定是否触发自愈。
  • 自愈剧本:根据燃烧速率级别执行不同恢复动作(如扩容、重启、降级)。