2. SRE 基础回顾

在深入《Golden Signals 误差预算》之前,必须统一三个核心术语的定义。SLI、SLO、SLA 构成了 SRE 所有量化决策的基石。理解它们的区别与联系,是后续计算误差预算、触发告警、进行复盘的前提。

2.1 核心定义

术语 英文全称 定义 核心特征
SLI Service Level Indicator 服务等级指标,是对某个服务质量维度的具体量化测量值。 可测量、可聚合、通常为比率(如成功率、延迟分位数)。
SLO Service Level Objective 服务等级目标,是团队为 SLI 设定的目标阈值或范围。 内部承诺、驱动工程决策、是误差预算的边界。
SLA Service Level Agreement 服务等级协议,是面向客户或外部实体的正式承诺,通常附带惩罚条款。 外部合同、法律约束、通常比 SLO 宽松。
SRE 黄金法则: 永远不要将 SLO 设置得比 SLA 更宽松。内部目标(SLO)必须比外部承诺(SLA)更严格,为团队预留缓冲空间,避免触发惩罚。

2.2 三者的层级关系

从数据采集到商业合同,SLI → SLO → SLA 构成了一个自下而上的金字塔结构。SLI 是原始观测数据,SLO 是内部质量标尺,SLA 是外部商业红线。

SLI / SLO / SLA 层级关系与典型值 SLA(服务等级协议) 外部合同承诺,99.9% 可用性 违约赔偿:月度账单 10% SLO(服务等级目标) 内部目标,99.95% 可用性 误差预算:0.05% / 月 SLI(服务等级指标) 请求成功率:99.97% P99 延迟:250ms 注意:SLO(99.95%)比 SLA(99.9%)更严格,预留了 0.05% 的误差预算缓冲

2.3 关键区别与常见误区

  • SLI 是“测量值”,SLO 是“目标值”,SLA 是“合同值”。SLI 是事实,SLO 是期望,SLA 是底线。
  • SLO 是内部工程驱动,SLA 是外部商业驱动。SLO 由 SRE 团队与产品团队共同制定;SLA 由法务、销售与客户协商确定。
  • 一个 SLA 可以对应多个 SLO。例如,一个 SLA 承诺“99.9% 可用性”,但内部可能同时跟踪延迟 SLO(P99 < 500ms)和错误率 SLO(< 0.1%)。
  • 并非所有 SLO 都需要升级为 SLA。许多内部质量指标(如缓存命中率、异步任务成功率)只作为 SLO 管理,不出现在 SLA 中。

2.4 典型示例:电商下单链路

层级 示例内容 说明
SLI 下单接口请求成功率 = 成功响应数 / 总请求数 每 1 分钟计算一次,原始指标
SLO 月度 SLI ≥ 99.95% 内部目标,误差预算 = 0.05%
SLA 月度可用性 ≥ 99.9%,否则赔付 5% 月费 外部合同,比 SLO 宽松 0.05%
常见陷阱: 不要将 SLI 直接当作 SLO 使用。SLI 是原始数据,SLO 是经过时间窗口聚合后的目标。例如,单次 1 分钟窗口的 SLI 降到 99% 并不一定违反 SLO,需要看整个复合时间窗口(如 28 天滚动窗口)的聚合结果。

2.5 三者在误差预算中的角色

误差预算 = 1 - SLO。这个预算代表了服务在遵守 SLO 的前提下,允许出现故障的时间比例。SLI 的实际表现与 SLO 之间的差值,决定了误差预算的消耗速度。

误差预算:SLI、SLO、SLA 的量化纽带 SLA 红线 (99.9%) SLO 目标 (99.95%) SLI 实际值 误差预算区域(SLO 与 SLA 之间的缓冲带) 当 SLI 实际值低于 SLO 线时,开始消耗误差预算 当 SLI 实际值接近或低于 SLA 线时,触发严重告警与人工介入

2.6 实践建议:如何定义你的第一个 SLO

  1. 选择关键 SLI:从 Golden Signals(延迟、流量、错误、饱和度)中选取 2-3 个最能反映用户体验的指标。
  2. 确定测量窗口:通常使用 28 天或 30 天滚动窗口,避免单次抖动导致目标频繁变动。
  3. 设定初始 SLO:参考行业基准(如 99.9%、99.99%),但结合当前系统实际表现,设定一个“努力可达”的目标。
  4. 定义误差预算策略:明确当预算耗尽时,团队将冻结新功能发布,优先进行稳定性投入。
  5. 定期复审:每季度或每半年复审 SLO,根据业务增长和技术演进进行调整。
关键总结: SLI 是“测量什么”,SLO 是“目标多少”,SLA 是“承诺多少”。误差预算 = 1 - SLO,是连接 SLI 实际表现与工程决策的量化桥梁。在后续章节中,我们将基于此框架,深入 Golden Signals 的每个信号如何影响误差预算的计算与复核。