technology · K · P0 · active

服务等级目标与错误预算

SLI/SLO and Error Budget
P0高级verified技术实践 technology技术K · 运维质量属性团队与康威GL-TECHNOLOGY · 技术实践层

§1摘要与结论

TL;DR · 一句话结论

用 SLI(好事件/总事件)度量服务水平,设定小于 100% 的 SLO 目标,并以错误预算等于 100% 减 SLO 驱动发布与加固决策;SLA 则是含后果的对外契约。

别名:SLO、Service Level Objective、SLI/SLO/SLA、错误预算、Error Budget、燃尽率 | 英文:SLI/SLO and Error Budget | 类型:技术 / practice

§2局部关系图

服务等级目标与错误预算 的 1-2 跳邻域关系图依据推导(derives_from):SLO 方法源于可靠性即风险管理依赖关联(dependency):错误预算政策以服务等级目标为输入细化(refines):四大黄金信号是可观测性信号的核心指标集前置依赖(prerequisite):事件响应决策依赖错误预算政策前置依赖(prerequisite):事件复盘证据驱动混沌实验设计依赖关联(dependency):发布变更以错误预算政策为门控依据推导(derives_from):SLO 目标选择体现架构即权衡实现(implements):交付指标的自动采集与仪表化落地对照(contrasts):仪表化平台区别于指标口径定义实现(implements):可观测信号关联方法的技术实现实现(implements):四大黄金信号的采集与呈现实现(implements):服务等级目标的度量与设定实现(implements):错误预算与燃尽率告警实现实现(implements):混沌工程方法的实验化落地实现(implements):无指责复盘的文档化落地实现(implements):DORA 交付效能指标的度量实现促成(enables):可观测信号使 SLO 可度量促成(enables):可观测稳态为混沌实验提供判据组合(combination):容错机制可由混沌实验验证组合(combination):实验发现的弱点进入复盘与修复闭环组合(combination):错误预算与交付指标共同度量稳定与吞吐组合(combination):熔断与重试事件需被可观测信号捕获组合(combination):错误预算界定混沌实验可接受的爆炸半径促成(enables):可观测信号是事故复盘的时间线证据案例印证(case_instance):印证:事件地图交叉核对声明点与派发点核验埋点服务等级目标与错误预算服务等级目标与错误预算(TEC-K-03)服务等级目标方法服务等级目标方法(MTH-K-01)错误预算政策与燃尽率告警错误预算政策与燃尽率告警(MTH-K-02)可观测性信号采集可观测性信号采集(TEC-K-02)混沌工程实践混沌工程实践(TEC-K-04)DORA 交付指标DORA 交付指标(TEC-K-06)架构即权衡架构即权衡(ESS-O-02)断路器与重试退避断路器与重试退避(TEC-K-01)harness 源码架构…harness 源码架构解析(CAS-X-09)事件响应与无指责复盘方法事件响应与无指责复盘方法(MTH-K-05)DORA 交付效能指标DORA 交付效能指标(MTH-N-05)交付效能度量与仪表化交付效能度量与仪表化(TEC-N-01)可靠性即风险管理可靠性即风险管理(ESS-K-01)可观测性信号关联方法可观测性信号关联方法(MTH-K-04)混沌工程方法混沌工程方法(MTH-K-06)无指责复盘实践无指责复盘实践(TEC-K-05)四大黄金信号监控方法四大黄金信号监控方法(MTH-K-03)容量规划与变更管理方法容量规划与变更管理方法(MTH-K-07)
前置依赖实现依据推导案例印证对比冲突
以本节点为中心,静态内联 1–2 跳邻域:内环 5 个直接邻接、外环 12 个二跳节点,共 18 个节点;连线按边类型着色(六类配色见下)。构建期计算,无运行期脚本。

§3原理 · 为什么

可靠性应以用户可感知的服务水平来定义,而非笼统地追求越高越好。100% 不是正确目标:既不可达,又会因变更是故障的首要来源而扼杀发布与迭代,且用户通常感知不到 99.99% 与 99.999% 的差别。SLI 是对服务水平某一方面的、被谨慎定义的定量度量;SLO 是针对该度量设定的目标值或区间;SLA 则是与用户之间含财务或法律后果的契约,三者层次不同、不可混用。错误预算(100% 减 SLO)把创新与稳定之间的政治争论转化为一个客观、由双方共同定义、供发布决策使用的量化机制:预算充足则放行发布,接近耗尽则放缓并投入加固,从制度上约束产品团队的自我克制。SLO 还是跨团队沟通可靠性的公共语言:它把模糊的感觉转成可讨论的数字,使产品、研发与运维能对同一目标负责。目标应保持简单、避免绝对化(如永远、无限),只保留足以覆盖关键属性的少数几条,先松后紧并允许迭代。

§4机制 · 如何运作

SLI 推荐以好事件数除以总事件数表达(如成功请求数/总请求数,或满足延迟阈值的请求数/总请求数),天然取值 0% 到 100% 并可直接导出错误预算,便于工具化为分子、分母、阈值三要素。SLO 形如 SLI 大于等于 target,例如 28 天滚动窗口内 99.9% 的请求成功;同一 SLI 可设多级阈值。错误预算即 100% 减 SLO,是允许的不可靠度。燃尽率(burn rate)描述预算被消耗的速率,实践中用多窗口、多燃尽率组合(如 1 小时/6 小时/1 天/3 天窗口对应不同倍数)兼顾查准率与查全率,比单一瞬时错误率告警更可靠。错误预算政策明确规定预算耗尽后的动作,如冻结发布、回滚或投入可靠性工作,使 SLO 真正约束决策;它也是 SRE 实践得以成立的前提之一,把预算耗尽后的技术动作制度化,避免每次都要临时谈判。窗口长度与聚合频率会影响灵敏度与噪声,短窗口响应快但易抖动,长窗口稳定但迟钝,多窗口组合可兼顾。

§5工程 · 怎么落地

每个服务只保留少量能够覆盖关键属性的 SLO,并显式规定聚合窗口、聚合范围、测量频率、纳入的请求、数据采集位置与延迟口径(如 time to last byte)。面向用户的服务应区分成功与失败请求的延迟,并用百分位而非均值。告警应基于燃尽率而非单一瞬时错误率,以避免一天误报上百次而 SLO 仍达标的情形。内部 SLO 应比对外 SLO 更严格,留出安全边际;对计划维护等预期停机可用状态修正(status corrections)排除。指标须从真实服务数据自动计算并保持口径稳定,配合错误预算政策、评审机制与发布流程落地,而不是停留在仪表盘上。为每个 SLI 记录清晰的文档,包括意图、计算方式、数据来源与责任人,并在服务变更时同步更新,以防口径漂移。

§6权衡卡

原文要点
  • SLO 目标过高会消耗大量工程投入并阻碍变更,过低则失去意义并损害信任。
  • 错误预算只有在存在正式政策时才有效,否则 SLO 合规只是又一个 KPI。
  • 燃尽率告警的窗口与倍数必须按服务校准,参数不当会误报或漏报。
  • 对外过高的 SLO 会诱导用户形成刚性依赖,使后续降级困难,因此有时需通过计划性下线主动暴露依赖。
  • 此外,SLI 的口径(成功如何判定、延迟在哪一端测量、哪些请求计入)若定义不清,会导致不同团队数据不可比并引发争议,必须在 SLO 文档中显式固化并随服务演进而复核。
  • 团队还可能通过操纵 SLI 定义来美化达标率,因此口径的修订应有评审与记录,避免指标被悄然软化。
  • 错误预算耗尽后的冻结策略也需预先约定,否则易在压力下被临时豁免而形同虚设。

权衡原文仅按显式标记词归栏引用(收益 / 代价 / 反例),其余句子按原序列为「原文要点」;内容逐字引用未改写。

§7案例带

CAS-X-01 · 2 跳派生:当前节点 → MTH-K-01 → ESS-O-02

去中心化聊天架构逆向

对一个仅有 58 份设计文档、尚未实现的开源去中心化聊天项目做架构逆向:从设计文本提炼 18 个模块及其依赖关系,重建模块依赖 DAG 与三条核心数据流 DAG,并输出全景理解与深度需求分析。

CAS-X-05 · 2 跳派生:当前节点 → TEC-K-02 → TEC-K-01

preset 通道耦合分析

对 harness「委派工具层→续用管理器→preset 服务→MCP 服务器」这条通道做耦合分析:识别契约、服务定位、数据契约、组合语义、路径与装配一致性六类耦合点,定位「静默丢弃特化」与「装配漂移」两处实质缝隙。

CAS-X-09 · 经 TEC-K-02

harness 源码架构解析

对 deepseek-harness 官方源码做分层解析:镜像官方架构文档,按九个层与九十余模块建立文档集群,产出跨层联动矩阵与七条关键路径,并钉住「模型可见即已记录」、能力缝三角等设计不变量。

CAS-X-12 · 2 跳派生:当前节点 → MTH-K-01 → ESS-O-02

MCP 四件套选型对比

对四个同类 MCP 服务器做源码级能力与成本对比,并以常驻 token 预算为轴给出分级接入策略的技术选型实战案例。

§8信源与核验

核验状态True(verified)
置信度high
复核日期2026-10-11
生命周期active
版本2026 (Azure WAF / Datadog) / 2016-2018 (Google SRE)
规范信源VEN-029、VEN-027、BK-025、BK-026
书证核验BK-025 ChBenefits(direct),ChControl Measures(direct),ChEmbracing Risk(direct),ChForming Your Error Budget(direct),ChService Level Terminology(direct);BK-026 Ch3: Incrementing Alert Duration(direct),Ch6: Multiwindow, Multi-Burn-Rate Alerts(direct),ChEstablishing an Error Budget Policy(direct),ChGetting Started(direct),ChReliability Targets and Error Budgets(direct),ChWhat to Measure: Using SLIs(direct)
勘误
常见误解:100% 可用性是应当追求的目标
核验结论:100% 既不可达,也会因变更是故障首要来源而使服务无法更新;正确做法是设定小于 100% 的 SLO [BK-025]
勘误
常见误解:定义并展示 SLO 就等于落地了可靠性治理
核验结论:若缺乏错误预算政策(对预算耗尽后动作的正式承诺),SLO 合规只是又一个 KPI,无法约束发布决策 [BK-026]
勘误
常见误解:SLO 与 SLA 可以互换使用
核验结论:SLO 是内部目标值;SLA 是含财务或法律后果的契约。若无人为未达成承担明确后果,则它只是 SLO [VEN-029]

§9原始关系清单

展开:本节点的全部原始关系边(5 条,含边 ID 与方向)
关系方向对端节点说明
组合→ TEC-K-04混沌工程实践
E-871
错误预算界定混沌实验可接受的爆炸半径
组合→ TEC-K-06DORA 交付指标
E-869
错误预算与交付指标共同度量稳定与吞吐
促成← TEC-K-02可观测性信号采集
E-865
可观测信号使 SLO 可度量
实现→ MTH-K-01服务等级目标方法
E-860
服务等级目标的度量与设定
实现→ MTH-K-02错误预算政策与燃尽率告警
E-861
错误预算与燃尽率告警实现