SuperAPI AI 工具集

cost-export

部署与运维

查看项目

更新于 10-15 14:13

技能介绍

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 会自动采集