3. 台账数据结构概述
3.1 台账的定义
在系统可靠性管理领域,误差预算台账(Error Budget Ledger)是一张以时间轴为维度、以服务等级目标(SLO)为基准、记录每个时间窗口内可用性消耗与剩余额度的结构化数据表。它本质上是将抽象的“可靠性承诺”转化为可量化、可追溯、可审计的数值记录。
| 维度 | 说明 |
|---|---|
| 记录对象 | 单个服务或服务组的 SLO 目标(如 99.9%、99.99%) |
| 时间粒度 | 通常为 1 分钟、5 分钟或 1 小时窗口 |
| 核心字段 | 时间戳、总预算、已消耗预算、剩余预算、消耗速率 |
| 数据用途 | 触发燃烧率告警、驱动发布决策、支撑可靠性复盘 |
关键认知:台账不是监控数据的简单转储,而是经过 SLO 映射、窗口聚合、预算扣减逻辑加工后的“可靠性会计账簿”。
3.2 台账在系统可靠性管理中的定位
台账位于监控层与决策层之间,承担三个核心角色:
- 量化桥梁:将原始监控指标(延迟、错误率、吞吐量)转换为 SLO 合规百分比与预算消耗值。
- 状态记录器:持久化每个时间窗口的预算变动,支持回溯分析“可靠性是如何被消耗的”。
- 策略触发器:当剩余预算低于阈值或燃烧率超过预设曲线时,触发自动化运维动作(如回滚、限流、告警升级)。
3.3 台账与监控系统的数据流关系
台账与监控系统之间形成双向数据流:监控系统提供原始指标,台账消费并加工后,将预算状态反馈回监控告警体系。具体流程如下:
| 步骤 | 数据流向 | 说明 |
|---|---|---|
| 1 | 监控系统 → 台账 | 推送时间窗口内的 SLI 指标(如 P99 延迟、错误计数) |
| 2 | 台账内部处理 | 将 SLI 与 SLO 阈值比对,计算该窗口是否消耗预算及消耗量 |
| 3 | 台账 → 监控告警 | 输出当前剩余预算百分比、燃烧率、预计耗尽时间 |
| 4 | 台账 → 存储 | 将每条预算变动记录持久化到时序数据库或关系表 |
| 5 | 监控告警 → 台账 | 告警事件(如已触发燃烧率告警)回写台账作为上下文标记 |
设计启示:台账数据结构必须同时支持高吞吐写入(来自监控系统的分钟级指标流)和低延迟查询(告警系统需要实时读取剩余预算)。建议采用列式存储或时序数据库作为底层引擎,避免使用传统行式 OLTP 数据库。