2、SLO台账定义:什么是SLO台账、台账的核心字段(SLI、目标、窗口期)、台账的维护原则

SLO台账是SRE体系中的核心资产,它将抽象的“可靠性承诺”转化为可量化、可审计、可追溯的结构化记录。与零散配置的告警规则不同,SLO台账以服务维度组织,每一条记录对应一个明确的SLO定义,并关联其度量方式、目标阈值与评估周期。本节将定义SLO台账的概念,拆解其核心字段,并给出维护原则。

2.1 什么是SLO台账

SLO台账(Service Level Objective Ledger)是一份集中管理所有SLO定义及其元数据的结构化清单。它不仅是监控系统的配置源,更是容量规划、故障定级、Error Budget核算的基准参照。

台账 vs 监控告警规则: 监控规则关注“是否触发阈值”,SLO台账关注“承诺的可靠性目标是什么、如何度量、窗口期多长”。台账是规则的上层语义定义。

一个完整的SLO台账应具备以下特征:

  • 唯一性: 每个SLO在台账中有唯一ID,与具体服务版本或功能模块绑定。
  • 可追溯性: 记录SLO的创建时间、变更历史、负责人及审批记录。
  • 可计算性: 台账中的字段可直接用于Error Budget消耗计算与容量推演。
  • 可审计性: 支持定期评审,确保SLO定义与业务实际需求一致。

2.2 台账的核心字段

SLO台账的每条记录必须包含以下三个核心字段:SLI(服务等级指标)、目标(Target)、窗口期(Window)。三者共同构成一个可执行的SLO定义。

核心字段 定义 示例 说明
SLI 衡量服务质量的量化指标,通常为比率或分布值 请求成功率、P99延迟、吞吐量 必须可采集、可计算,且与用户体验直接相关
目标(Target) SLI在窗口期内必须达到的阈值 99.9%、≤200ms、1000 QPS 目标值决定Error Budget总量,过高或过低均不合理
窗口期(Window) 评估SLO达标情况的时间跨度 30天滚动、7天滚动、日历月 窗口期影响Error Budget的消耗速率与恢复速度
实践建议: 窗口期推荐使用滚动窗口(如28天或30天),避免日历月带来的边界效应。滚动窗口能更平滑地反映近期服务质量变化。

除核心字段外,台账还应包含以下辅助字段以增强可管理性:

  • 服务名称/ID: 关联CMDB或服务目录。
  • SLO类型: 可用性SLO、延迟SLO、吞吐SLO、持久性SLO。
  • Error Budget总量: 由目标值推导得出(1 - 目标)× 总时间窗口。
  • 负责人: 负责该SLO的团队或个人。
  • 状态: 生效中、已废弃、待评审。
  • 创建时间/变更时间: 用于审计与版本管理。

2.3 台账的维护原则

SLO台账不是一次性产物,需要持续维护。以下四项原则确保台账长期有效:

  1. 单一数据源原则: 所有SLO定义以台账为准,监控系统、告警系统、容量规划工具均从台账同步数据,避免定义分散导致的不一致。
  2. 版本化与变更审批原则: 每次修改SLO目标或窗口期,必须记录变更原因、审批人、生效时间。建议使用Git或类似工具管理台账文件。
  3. 定期评审原则: 每季度或每半年对台账进行全量评审,检查SLI是否仍能反映用户体验、目标是否过高或过低、窗口期是否合理。
  4. 废弃清理原则: 已下线服务或不再使用的SLO应及时标记为“已废弃”,避免台账膨胀干扰容量规划决策。
常见陷阱: 台账中SLO目标值长期不更新,导致Error Budget与实际业务脱节。例如,服务架构已优化但SLO目标仍沿用旧值,造成Error Budget虚高,掩盖真实容量风险。

2.4 SLO台账结构示意

下图展示了一个典型SLO台账的字段关系与维护流程,帮助理解台账在SRE体系中的位置。

SLO台账核心字段与维护流程 SLI(服务等级指标) 目标(Target) 窗口期(Window) 辅助字段:服务ID / SLO类型 / Error Budget总量 / 负责人 / 状态 / 时间戳 单一数据源 版本化变更审批 定期评审 废弃清理 输出:Error Budget消耗模型 / 容量规划基线 / 故障定级依据 台账是SRE所有可靠性决策的单一数据源

2.5 台账与Error Budget的关系

SLO台账是Error Budget消耗模型的数据底座。每一条台账记录直接决定:

  • Error Budget总量: 窗口期总时间 ×(1 - 目标值)。例如,30天窗口期、99.9%目标,则Error Budget总量为 30×24×60×60×0.001 = 2592秒。
  • 消耗速率基准: 台账中的SLI实时数据与目标值对比,计算已消耗的Error Budget比例。
  • 容量规划触发条件: 当Error Budget消耗速率超过预设阈值时,台账驱动容量规划流程启动。
关键认知: 没有台账,Error Budget就是无源之水。台账的准确性与完整性直接决定容量规划的可信度。

下图展示SLO台账如何与Error Budget消耗模型联动,形成容量规划闭环。

SLO台账 → Error Budget消耗 → 容量规划闭环 SLO台账 SLI / 目标 / 窗口期 Error Budget消耗模型 实时消耗速率 / 剩余预算 容量规划决策 扩容 / 限流 / 降级 反馈:调整SLO目标或窗口期 闭环价值 容量规划结果反哺台账,形成持续优化的可靠性治理循环 最终目标:以Error Budget为纽带,实现数据驱动的容量规划

2.6 台账维护的自动化建议

对于大规模微服务架构,手动维护台账不可持续。建议采用以下自动化策略:

  • 台账即代码: 使用YAML或JSON定义台账,存储在Git仓库中,通过CI/CD流水线同步至监控与容量规划系统。
  • 自动校验: 在提交台账变更时,自动检查SLI是否可采集、目标值是否在合理范围(如99%~99.999%)、窗口期是否为正整数天。
  • 变更通知: 台账变更自动通知相关服务负责人与SRE团队,确保变更透明可追溯。
台账即代码示例(YAML):
slo_ledger:
  - id: "svc-auth-availability"
    service: "auth-service"
    sli: "request_success_rate"
    target: 0.999
    window_days: 30
    owner: "team-auth"
    status: "active"
    created_at: "2025-01-01"
  - id: "svc-payment-p99-latency"
    service: "payment-service"
    sli: "p99_latency_ms"
    target: 200
    window_days: 7
    owner: "team-payment"
    status: "active"
    created_at: "2025-01-15"

通过以上定义与维护原则,SLO台账将成为容量规划工作中最可靠的基准参照,确保每一次扩容、限流、降级决策都有据可依。