2. SLO 基础概念回顾:SLI、SLO、Error Budget 的定义与关系

在深入权限模型设计之前,必须统一团队对 SLO 核心概念的认知。平台工程团队常犯的错误是跳过基础概念直接制定指标,导致 SLI 采集与 SLO 目标脱节。本节用最短篇幅厘清 SLI、SLO、Error Budget 三者的定义、差异与联动关系。

2.1 核心定义速览

术语 全称 一句话定义 平台工程场景示例
SLI Service Level Indicator 服务质量的量化测量指标 API 网关 P99 延迟、控制台页面加载成功率
SLO Service Level Objective SLI 的目标阈值,即“好”与“坏”的分界线 P99 延迟 ≤ 200ms(月度 99.9%)
Error Budget Error Budget SLO 允许的最大不可用时间或错误次数 月度总请求中允许 0.1% 的请求不达标
记忆口诀:SLI 是“测什么”,SLO 是“目标值”,Error Budget 是“还剩多少犯错额度”。

2.2 三者的层级关系与数据流

下图展示了从原始观测数据到 Error Budget 消耗的完整链路。平台工程团队在设计权限模型时,必须确保每个环节的数据源、计算逻辑和告警触发点都有明确的归属角色。

SLI → SLO → Error Budget 数据流与决策闭环 原始观测数据 请求日志 / 指标 / 追踪 SLI 指标计算 成功率 / 延迟 / 吞吐量 SLO 目标定义 阈值 + 合规窗口 Error Budget 1 - SLO 百分比 告警 / 降级 / 冻结发布 Error Budget 耗尽触发 容量规划 / 架构改进 Error Budget 充裕时投入 反馈闭环:改进结果影响下一周期的 SLI 基线

2.3 Error Budget 的消耗与恢复机制

Error Budget 不是静态额度,而是随时间滚动的消耗-恢复模型。平台工程团队需要理解其动态特性,才能设计出合理的权限审批策略。

  • 消耗方式:每次 SLI 未达到 SLO 阈值,即消耗 Error Budget。消耗量 = 未达标请求数 / 总请求数。
  • 恢复方式:时间窗口滚动。例如 30 天滚动窗口,每天旧数据过期,新数据加入。
  • 关键阈值:
    • ≤ 50% 剩余:正常状态,允许常规变更。
    • 50% ~ 20% 剩余:警告状态,变更需审批。
    • < 20% 剩余:危险状态,冻结高风险变更。
平台工程实践要点:Error Budget 的消耗速率比值更重要。如果消耗速率持续高于恢复速率,即使当前剩余额度尚可,也应提前触发权限收紧。

2.4 SLI 与 SLO 的典型组合模式

平台工程团队通常为每个服务定义 2~3 个 SLI,每个 SLI 对应一个 SLO。下表列出最常见的组合模式:

SLI 类型 测量方式 典型 SLO 目标 适用场景
请求成功率 HTTP 2xx / 5xx 比例 ≥ 99.9% 控制台、API 网关
延迟(P50/P99) 服务端响应时间分布 P99 ≤ 500ms CI/CD 流水线、配置下发
吞吐量 每分钟成功请求数 ≥ 基线值的 90% 日志采集、事件处理
数据新鲜度 最近一次成功同步时间 延迟 ≤ 60s 权限同步、缓存更新

2.5 权限模型设计中的概念映射

在后续章节中,我们将把 SLI/SLO/Error Budget 映射到权限模型的三个核心维度:

SLO 概念 → 权限模型映射 SLI 谁有权限采集/查看指标 数据源访问控制 SLO 谁有权限定义/修改阈值 配置变更审批权限 Error Budget 谁有权限触发降级/冻结 应急操作权限 设计原则 每个 SLO 概念对应一组独立的权限域,避免“一人通管”的粗粒度授权
常见误区:将 SLI 采集权限与 SLO 修改权限混为一谈。指标查看者不应自动获得阈值修改权,否则 Error Budget 的客观性将丧失。权限模型必须严格分离“观测”与“决策”两个角色。