2. SLO 台账基础概念:什么是 SLO、SLI、Error Budget?台账在 SRE 中的核心作用
在深入质量门禁调优之前,必须建立一套精确的度量语言。SRE 领域用 SLO(Service Level Objective,服务等级目标)、SLI(Service Level Indicator,服务等级指标) 和 Error Budget(错误预算) 三个核心概念来量化系统可靠性。这三者构成一个闭环决策体系,而 SLO 台账 则是承载这套体系的结构化数据底座。
2.1 三要素定义与关系
| 概念 | 英文全称 | 一句话定义 | 示例 |
|---|---|---|---|
| SLI | Service Level Indicator | 系统实际运行状态的可测量指标 | 请求延迟 P99 ≤ 200ms |
| SLO | Service Level Objective | 对 SLI 设定的目标阈值,即“好”与“坏”的分界线 | 99.9% 的请求延迟 ≤ 200ms |
| Error Budget | Error Budget | SLO 允许的最大不可用时间或失败次数 | 月度 0.1% = 43.2 分钟 |
核心公式: Error Budget = 1 − SLO(以百分比计)。例如 SLO = 99.9%,则 Error Budget = 0.1%。这个预算就是团队在保证用户满意度前提下,可以用于发布、实验、重构的“风险额度”。
三者的逻辑链条为:SLI 是原始数据 → SLO 是目标承诺 → Error Budget 是风险量化工具。没有 SLI,SLO 就是空谈;没有 SLO,Error Budget 无从计算;没有 Error Budget,SRE 决策就退化为凭感觉拍板。
2.2 Error Budget:从理论到决策
Error Budget 是 SRE 最具创新性的概念之一。它将“可靠性”从抽象目标转化为可消耗的货币,让团队在稳定性与迭代速度之间做出理性权衡。
- 消耗机制:每次 SLI 未达标(即“坏事件”)都会消耗 Error Budget。消耗速率 = 坏事件数 / 总事件数。
- 门禁触发:当 Error Budget 消耗超过预设阈值(如 50% 或 100%),质量门禁自动阻断高风险变更。
- 恢复机制:Error Budget 按时间窗口滚动重置(通常为月度或季度),系统稳定运行可逐步恢复预算。
常见误区:Error Budget 不是“故障额度”,而是“不确定性额度”。即使系统从未宕机,如果延迟抖动频繁触发 SLO 边界,Error Budget 同样会被快速消耗。门禁关注的是 SLO 违反率,而非仅关注事故。
2.3 SLO 台账:SRE 的“会计账簿”
SLO 台账不是简单的指标列表,而是一套结构化、版本化、可审计的可靠性元数据管理系统。它在 SRE 实践中承担以下核心作用:
| 作用维度 | 具体说明 | 台账字段示例 |
|---|---|---|
| 统一度量 | 将分散的监控指标映射为标准化 SLO 条目 | SLI 名称、数据源、聚合窗口 |
| 门禁规则引擎 | 为每个 SLO 配置 Error Budget 消耗阈值与动作 | 门禁类型、触发条件、阻断动作 |
| 审计追溯 | 记录每次 SLO 变更、门禁触发、预算消耗历史 | 变更人、时间戳、消耗曲线 |
| 误报过滤 | 通过台账元数据识别并标记已知的误报模式 | 误报标签、排除规则、白名单 |
2.4 台账在误报率控制中的特殊地位
质量门禁的误报率问题,根源往往不在门禁引擎本身,而在于SLO 台账的元数据质量。一个典型的误报链条如下:
- SLI 定义模糊:例如将“所有 HTTP 500”都计入 SLI,忽略了健康检查探针的预期 503。
- SLO 阈值过紧:将 99.99% 的延迟 SLO 应用于非关键批量任务,导致频繁触发。
- Error Budget 窗口错配:使用 7 天滚动窗口覆盖了计划内维护窗口,消耗异常。
- 台账缺乏排除规则:已知的误报模式(如客户端重试风暴)未被台账标记,门禁持续误判。
实践建议:在搭建 SLO 台账初期,就为每个条目预留“误报标签”和“排除规则”字段。这比后期回溯清洗数据要高效 10 倍。台账的字段设计直接决定了门禁误报率的天花板。
2.5 本章小结
- SLI 是原始指标,SLO 是目标承诺,Error Budget 是风险货币,三者构成 SRE 可靠性决策的三角基石。
- SLO 台账 是结构化、版本化的可靠性元数据系统,承担统一度量、门禁引擎、审计追溯、误报过滤四大核心职能。
- 门禁误报率控制的第一道防线,就是台账的字段完整性与元数据质量——台账不清,门禁必乱。