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 分钟)

台账管理的关键在于:

  • 记录:实时采集服务可用性数据,计算当前消耗量。
  • 预警:当消耗接近阈值(如 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 承担以下职责:

  1. SLI 数据源:暴露请求延迟、错误率、吞吐量等核心指标。
  2. 标准化输出:将异构系统的指标统一为 /metrics 端点格式。
  3. 标签丰富:附加服务名、版本、实例 ID 等维度,支持多维度 SLO 计算。
  4. 故障边界:Exporter 自身故障会导致 SLI 数据缺失,直接影响误差预算计算的准确性。
常见误区:很多团队只关注应用 Exporter,却忽略了基础设施 Exporter(如 node_exporter、blackbox_exporter)的稳定性。当采集链路中断时,误差预算台账会显示“数据缺失”而非“服务正常”,导致误判。

1.3 指标采集链路全景图

从服务产生指标到误差预算台账展示,中间经过多个环节。任何一个环节故障都会导致台账数据失真。下图展示了完整的采集链路:

指标采集链路全景图 指标采集链路全景图 应用服务 /metrics 端点 中间件 Redis / MySQL Exporter 基础设施 node_exporter / blackbox Prometheus Server(抓取 /metrics) scrape_interval: 15s | scrape_timeout: 10s Thanos / VictoriaMetrics 长期存储 & 全局视图 Recording Rules SLI → SLO 计算 Grafana Dashboard 误差预算实时看板 Alertmanager 预算消耗告警 故障高发区:Exporter 进程崩溃、网络隔离、/metrics 端点超时、scrape 超时、存储写入失败

1.4 链路故障对误差预算台账的影响

当采集链路中任意环节出现故障时,误差预算台账会表现出以下典型症状:

故障环节 台账表现 误判风险
Exporter 进程崩溃 指标缺失,SLI 显示 NaN 高:可能被误认为服务完全不可用
网络隔离 scrape 失败,up == 0 中:Prometheus 标记目标下线
/metrics 端点超时 scrape 超时,数据不完整 高:部分请求被计入错误预算
Recording Rules 错误 SLO 计算偏差 极高:台账显示错误但服务正常
存储写入失败 历史数据断点 中:无法计算长期 SLO 趋势
课程目标:本课程将逐一拆解上述故障场景,提供从 Exporter 配置、Prometheus 抓取调优、到台账数据校验的完整排查方法论。你将学会如何快速定位“台账异常”是服务问题还是采集链路问题。

1.5 本章小结

  • 误差预算台账是 SLO 落地的量化管理工具,依赖准确的 SLI 数据。
  • Exporter 是 SLI 数据的“第一公里”,其稳定性直接影响台账质量。
  • 采集链路包含服务层、采集层、存储层、展示层,每层都可能成为故障点。
  • 本课程将围绕链路故障排查,提供可复用的实战经验与工具链。