1. 课程导论:误差预算台账的概念、Exporter 在 SLO 体系中的作用、指标采集链路全景图
1.1 误差预算台账:从 SLO 到可量化运维
误差预算(Error Budget)是 SRE 实践中的核心量化工具,它定义了服务在给定 SLO(Service Level Objective)下允许失效的时间或比例。误差预算台账(Error Budget Ledger)则是对这一预算的记录、消耗与预警的完整管理过程。
核心公式:
Error Budget = 1 − SLO
例如:SLO = 99.9% → Error Budget = 0.1%(月度约 43 分钟)
Error Budget = 1 − SLO
例如:SLO = 99.9% → Error Budget = 0.1%(月度约 43 分钟)
台账管理的关键在于:
- 记录:实时采集服务可用性数据,计算当前消耗量。
- 预警:当消耗接近阈值(如 75%、90%)时触发告警。
- 决策:预算耗尽时,暂停新功能发布,优先修复稳定性。
| 概念 | 说明 | 示例 |
|---|---|---|
| SLO | 服务等级目标,通常以百分比表示 | 99.9% 可用性 |
| SLI | 服务等级指标,实际测量的服务质量 | 请求成功率 99.85% |
| Error Budget | 允许的失效总量 | 0.1% × 30天 = 43.2 分钟 |
| Budget Consumption | 当前已消耗的预算比例 | 已消耗 32 分钟(74%) |
实践要点:台账不是静态表格,而是持续更新的时间序列数据。Exporter 正是将 SLI 数据从服务内部“导出”到监控系统的关键桥梁。
1.2 Exporter 在 SLO 体系中的角色
Exporter 是 Prometheus 生态中的指标采集适配器,它将应用、中间件、基础设施的内部状态转换为 Prometheus 可抓取的指标格式。在 SLO 体系中,Exporter 承担以下职责:
- SLI 数据源:暴露请求延迟、错误率、吞吐量等核心指标。
- 标准化输出:将异构系统的指标统一为
/metrics端点格式。 - 标签丰富:附加服务名、版本、实例 ID 等维度,支持多维度 SLO 计算。
- 故障边界:Exporter 自身故障会导致 SLI 数据缺失,直接影响误差预算计算的准确性。
常见误区:很多团队只关注应用 Exporter,却忽略了基础设施 Exporter(如 node_exporter、blackbox_exporter)的稳定性。当采集链路中断时,误差预算台账会显示“数据缺失”而非“服务正常”,导致误判。
1.3 指标采集链路全景图
从服务产生指标到误差预算台账展示,中间经过多个环节。任何一个环节故障都会导致台账数据失真。下图展示了完整的采集链路:
1.4 链路故障对误差预算台账的影响
当采集链路中任意环节出现故障时,误差预算台账会表现出以下典型症状:
| 故障环节 | 台账表现 | 误判风险 |
|---|---|---|
| Exporter 进程崩溃 | 指标缺失,SLI 显示 NaN | 高:可能被误认为服务完全不可用 |
| 网络隔离 | scrape 失败,up == 0 | 中:Prometheus 标记目标下线 |
| /metrics 端点超时 | scrape 超时,数据不完整 | 高:部分请求被计入错误预算 |
| Recording Rules 错误 | SLO 计算偏差 | 极高:台账显示错误但服务正常 |
| 存储写入失败 | 历史数据断点 | 中:无法计算长期 SLO 趋势 |
课程目标:本课程将逐一拆解上述故障场景,提供从 Exporter 配置、Prometheus 抓取调优、到台账数据校验的完整排查方法论。你将学会如何快速定位“台账异常”是服务问题还是采集链路问题。
1.5 本章小结
- 误差预算台账是 SLO 落地的量化管理工具,依赖准确的 SLI 数据。
- Exporter 是 SLI 数据的“第一公里”,其稳定性直接影响台账质量。
- 采集链路包含服务层、采集层、存储层、展示层,每层都可能成为故障点。
- 本课程将围绕链路故障排查,提供可复用的实战经验与工具链。