Cost Export 用于将成本追踪数据导出到外部可观测性系统。它从 cost-tracking 中拉取所有 session-* 和 budget-config-* 记录,并以外部可观测性系统可消费的格式输出。没有它,成本数据只存在于 AgentDB 命名空间内;有了它,同样的数据可以点亮仪表盘。
用途
将成本追踪遥测导出为 Prometheus textfile 或 webhook JSON 格式,用于外部可观测性(Grafana、Datadog、自定义仪表盘)。
何时使用
- 在任何 cost-track 运行之后,刷新 Grafana / Datadog / Prometheus 的指标。
- 通过 /loop 5m 适配 cron,使外部仪表盘保持近实时。
- 一次性推送到 webhook,用于临时报告(Slack、自定义端点)。
使用方式
选择一种格式——用于 Prometheus / Grafana 的 textfile collector,或用于其它所有场景的 webhook POST:
Prometheus node_exporter textfile collector:
node plugins/ruflo-cost-tracker/scripts/export.mjs --prometheus /var/lib/node_exporter/textfile_collector/cost_tracker.prom
Webhook(POST JSON;通过环境变量添加认证):
EXPORT_WEBHOOK_HEADER='Authorization: Bearer $TOKEN'
node plugins/ruflo-cost-tracker/scripts/export.mjs --webhook https://hooks.example.com/cost-tracker
Stdout JSON(无标志时的默认行为):
node plugins/ruflo-cost-tracker/scripts/export.mjs
输出内容
Prometheus 输出包含:
- cost_tracker_total_usd
- cost_tracker_tier_total_usd{tier="opus|sonnet|haiku"}
- cost_tracker_session_total_usd{session="<8-char>"}
- cost_tracker_session_messages{session="<8-char>"}
- cost_tracker_budget_usd(如果配置了预算)
- cost_tracker_budget_utilization(spent / budget)
Webhook 载荷结构:webhook 接收的 JSON 与 stdout JSON 一致:{ exportedAt, sessions: [...], budget, totalUsd, byTier }。可通过 EXPORT_WEBHOOK_HEADER='K1: V1, K2: V2'(逗号分隔)添加请求头。
环境变量覆盖
| 环境变量 | 默认值 | 用途 |
|---|---|---|
EXPORT_NAMESPACE |
cost-tracking |
覆盖目标命名空间 |
EXPORT_WEBHOOK_HEADER |
未设置 | 逗号分隔的 K: V 对,用于 webhook 认证 |
EXPORT_QUIET=1 |
未设置 | 抑制非错误的确认输出 |
交叉引用
cost-track—— 生成此技能所导出的数据cost-budget-check—— 相同的cost_tracker_budget_*指标可在 Prometheus 中告警- node_exporter textfile collector 文档(Prometheus 约定)—— 将
.prom文件放入 collector 目录,Prometheus 会自动采集