1. Burn Rate 基础概念

1.1 什么是 Burn Rate

Burn Rate(燃烧速率) 是衡量云资源成本消耗速度的核心指标,定义为 单位时间内的实际支出金额。在 SRE 与 FinOps 实践中,Burn Rate 通常以 每小时 或 每天 为粒度计算,用于量化预算消耗的实时节奏。

核心公式:
Burn Rate = 周期内实际支出金额 ÷ 周期时长(小时/天)

示例: 某团队月预算 $100,000,当月已过 15 天,实际支出 $55,000。
→ 日 Burn Rate = $55,000 ÷ 15 ≈ $3,666.67/天
→ 月均日预算 = $100,000 ÷ 30 ≈ $3,333.33/天
→ 当前 Burn Rate 超出预算日消耗 10%。
维度 说明 典型粒度
总 Burn Rate 整个账户或组织的总消耗速率 天 / 周
服务级 Burn Rate 按单个微服务、集群或资源组聚合的速率 小时 / 天
标签级 Burn Rate 按成本标签(环境、团队、项目)过滤的速率 小时

1.2 为什么需要监控 Burn Rate

传统成本管理依赖 月度账单回顾,但云资源弹性扩缩容可在 分钟级 内推高支出。Burn Rate 监控填补了“账单出账前”的盲区,提供实时预警能力。

  • 避免预算超支: 在月度账单生成前发现异常消耗,留出干预窗口。
  • 关联业务指标: 将成本消耗与请求量、部署频率、实验流量等业务指标对齐,识别成本异常根因。
  • 支持容量规划: 通过 Burn Rate 趋势预测未来支出,辅助预算调整与资源采购决策。
  • 提升成本可见性: 让开发团队实时感知代码变更对成本的影响,培养成本意识。
实践建议: 将 Burn Rate 监控与 部署流水线 集成。每次代码发布后自动对比发布前后的服务级 Burn Rate,若增幅超过阈值则触发回滚或成本审批流程。

1.3 Burn Rate 与预算消耗的关系

Burn Rate 是预算消耗的 瞬时速度表,而预算消耗是 Burn Rate 在时间轴上的 积分结果。二者关系可用以下模型描述:

Burn Rate 与预算消耗关系模型 实时 Burn Rate (元/小时) 时间积分器 ∫ Burn Rate · dt 累计预算消耗 (元) 预算基线:月预算 $100,000 → 日预算 $3,333.33 → 时预算 $138.89 场景 A:超速燃烧 Burn Rate > 预算速率 → 提前耗尽预算 场景 B:匀速燃烧 Burn Rate ≈ 预算速率 → 预算刚好用完 场景 C:低速燃烧 Burn Rate < 预算速率 → 预算有结余 告警触发条件:当 Burn Rate 持续超过预算速率 × 阈值系数(如 1.2)时触发告警

理解 Burn Rate 与预算消耗的关系,关键在于掌握 速率 vs 总量 的转换:

指标 含义 计算公式 监控价值
Burn Rate 瞬时消耗速度 Δ支出 / Δ时间 实时异常检测
预算消耗率 已用预算占比 累计支出 / 总预算 × 100% 进度跟踪
预测耗尽日 按当前速率何时耗尽预算 剩余预算 / Burn Rate + 当前时间 提前预警
常见误区: 仅监控累计预算消耗率(如已用 60%)会掩盖短期异常。例如:月初 3 天内消耗 40% 预算,累计消耗率看似可控,但日 Burn Rate 已达预算日速率的 4 倍。必须同时监控 Burn Rate 瞬时值 与 累计消耗率,才能完整评估预算健康度。

1.4 Burn Rate 告警阈值设计原则

基于 Burn Rate 与预算消耗的关系,告警阈值设计应遵循以下原则:

  1. 多窗口分级: 设置短窗口(1 小时)高阈值用于紧急告警,长窗口(24 小时)低阈值用于趋势预警。
  2. 预算对齐: 阈值应基于预算日速率计算,而非金额。例如:阈值 = 预算日速率 × 1.5。
  3. 服务差异化: 核心服务使用更严格的阈值(如 1.2 倍),非核心服务可放宽至 2 倍。
  4. 动态调整: 根据历史 Burn Rate 分布,每月自动校准阈值基线。
阈值计算示例:
某服务月预算 $30,000,工作日 22 天,日预算 = $30,000 ÷ 22 ≈ $1,363.64。
→ 日 Burn Rate 告警阈值 = $1,363.64 × 1.5 = $2,045.46/天
→ 时 Burn Rate 告警阈值 = $2,045.46 ÷ 24 ≈ $85.23/小时

当实际时 Burn Rate 连续 2 小时超过 $85.23 时触发 P2 告警;连续 4 小时超过时升级为 P1。