关于 cost-burn
cost-burn 是用于观察生产成本消耗速率变化的技能,适合监控运行成本的团队。它按时间窗口比较最新支出与此前非空窗口均值,并可在加速超过阈值时告警。
主要功能
- 01按时间窗口汇总会话支出
- 02比较最新支出与历史均值
- 03可配置加速阈值告警
- 04支持 CI 失败门控
- 05无历史基线时跳过告警
适用场景
- 01发现生产支出速率突然上升
- 02在预算告警前检测成本加速
- 03在 CI 中阻止超阈值变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill cost-burn安装后在 Claude Code 中输入/cost-burn确认已加载。
详细介绍
消耗速率趋势可观测性。这是成本追踪器前瞻成本堆栈的第四项:
| 问题 | 技能 |
|---|---|
| “我们是否已超过阈值?”(反应式) | cost-budget-check |
| “我们何时会超过阈值?”(预测式) | cost-projection |
| “我们本可以少花钱吗?”(比较式) | cost-counterfactual |
| “每日消耗是否在加速?”(趋势) | cost-burn ← 此项 |
算法
实现:scripts/burn.mjs。
- 从
cost-tracking命名空间读取所有session-*记录。 - 在
--lookback(默认14d)时间范围内,按--bucket时长窗口(默认1d)分桶。 - 对每个桶计算:
{n: sessions, spendUsd: sum(total_cost_usd)}。 - 计算
delta = latest.spendUsd - mean(prior non-empty buckets)。 - 如果设置了
--alert-on-acceleration-pct N:当deltaPct > N时以状态码 1 退出。
冒烟测试记录(5 天每天 $0.10,今天 $0.50——加速 400%)
| Latest bucket spend | $0.500000 (1 sessions) |
| Prior bucket mean | $0.100000 (4 non-empty buckets) |
| **Delta (latest vs prior mean)** | **+$0.400000 (400.00%)** |
# | Window | Sessions | Spend
0 | 2026-06-15 14:16 → 2026-06-16 14:16 | 1 | $0.500000
1 | 2026-06-14 14:16 → 2026-06-15 14:16 | 0 | $0.000000
2 | 2026-06-13 14:16 → 2026-06-14 14:16 | 1 | $0.100000
3 | 2026-06-12 14:16 → 2026-06-13 14:16 | 1 | $0.100000
...
漂移告警退出码
$ cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 50 ⚠ ALERT:最新桶为 $0.500000,比此前平均值 $0.100000 高 400.0%(阈值 +50%) exit 1
$ cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 500 ✓ 最新桶在此前平均值的 +500% 范围内(实际变化:400.0%)— OK exit 0
CI 集成
# Fail the build if today's spend accelerated > 100% over the weekly mean
cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 100 || alert-oncall
该告警独立于预算——即使总支出远低于预算,只要消耗速率加速就会触发。在预算告警响起前,及时发现“我们发布了一个消耗速率达到正常水平 10 倍的死循环”。
与 cost-trend 的区别
| 技能 | 数据来源 | 问题 |
|---|---|---|
cost-trend | docs/benchmarks/runs/*.json | “基准测试是否在漂移(胜率、延迟)?” |
cost-burn | cost-tracking 命名空间 | “生产环境支出是否在加速?” |
两者都很有用;它们基于不同数据回答不同问题。
边缘情况
- 历史数据稀疏(此前没有非空桶):跳过告警并给出原因说明,退出码为 0。避免在冷启动时向运维人员发送误报。
- 此前的桶均为 $0,但最新桶大于 $0:JSON 中的 delta 为
Infinity/null,表格中标记为new。不会触发告警(没有可供比较的基线)。 --bucket大于--lookback:硬错误,退出码为 2。
评论
支持 Markdown