08 · FinOps 数据模型与 Dashboard
08 · FinOps 数据模型与 Dashboard
一、数据流
[GPU 硬件] --DCGM--> Prometheus
[vLLM] --/metrics-> Prometheus
[Gateway] --写--> PG (requests / billing_events)
↓
每小时 ETL
↓
ClickHouse ← 长期存储 + 分析
↓
Grafana / BI
↓
Dashboard / 报表 / 告警二、ClickHouse 核心表设计
2.1 fact_gpu_metrics(每分钟采样)
字段:timestamp / machine / gpu_id / card_model / utilization / memory_used_gb / memory_total_gb / power_w / temperature_c / nvlink_gbps / ecc_errors / cost_per_hour_cents
PARTITION BY toYYYYMMDD(timestamp) ORDER BY (timestamp, machine, gpu_id)
2.2 fact_inference_metrics(每次请求)
字段:request_id / timestamp / user_id / model / engine / priority / input_tokens / output_tokens / ttft_ms / tpot_ms / duration_ms / kv_cache_hit / machine / revenue_cents / gpu_cost_cents / margin_cents / status
PARTITION BY toYYYYMMDD(timestamp) ORDER BY (timestamp, model, user_id)
2.3 dim_users / dim_models / dim_pricing
维度表 lookup 用,PG 主表镜像。
三、核心 SQL(每日跑一次)
3.1 每卡每小时收入
按小时 GROUP BY (machine, gpu_id),SUM(revenue) / SUM(cost) / margin,ORDER BY margin DESC。
3.2 每模型毛利率排名
按模型 SUM/AVG 各项:revenue、cost、margin_pct、cache_hit_rate、avg_ttft。近 7 天。
3.3 客户流失预警
近 14 天客户日消费。计算 peak_revenue vs latest_revenue,跌幅 > 50% 的客户列出来。
四、Grafana Dashboard 布局
4.1 Operator Dashboard(每天看 5 分钟)
Row 1:Top-level KPI
- MTD Revenue / Cost / Margin
- Cash Runway
- Active Users
Row 2:Real-time GPU 状态
- 40 卡热力图(颜色=utilization)
- Top 5 高温卡
- Top 5 空转卡
Row 3:模型性能
- 每模型 TPS 时序
- 每模型 TTFT P99
- 每模型 KV Cache 命中率
Row 4:财务趋势
- Daily Revenue / Cost / Margin 折线(30 天)
4.2 Executive Dashboard(CEO 每周看)
只显示:
- ARR / MRR growth rate
- CAC / LTV
- Churn rate
- Top 10 客户占比
- Runway
- Team headcount
4.3 Customer Dashboard(客户看自己)
- 本月使用量
- 本月消费
- 各模型分布
- API 调用趋势
- 错误率 / 平均延迟
- 余额 + 预估耗尽时间
五、告警规则(Prometheus AlertManager 组)
卡效告警:某机器平均 utilization < 30% 持续 2h → 建议下线冷模型或灌 Spot
毛利告警:某模型 margin_ratio < 0 持续 30 分钟 → 立即调价或下线
KV Cache 告警:某模型命中率 < 20% 持续 1h → 检查 sticky routing
客户告警:Top 客户日消费下降 > 50% → 客户成功团队 24h 内联系
财务告警:单日毛利为负累计 24h → CFO 介入
六、Cost Allocation(成本分摊)
目标:每一分钱都要能归因到具体的模型 / 客户 / 时段。
- 电费分摊:单请求 = GPU 秒数 × GPU 功率 × 电价 × PUE
- 硬件折旧:单请求 = GPU 秒数 / (3 年秒数) × 单卡采购价
- 团队人力:按机器 uptime 分摊团队薪资
- 带宽:按 output_tokens × 8 bytes 估算,按 GB 单价计
七、Unit Economics 追踪
每周更新:
| 指标 | 公式 | 目标 |
|---|---|---|
| Revenue/GPU/hour | Σrev / Σgpu_hours | ≥ ¥12 |
| Cost/GPU/hour | Σcost / Σgpu_hours | ≤ ¥6 |
| Margin/GPU/hour | rev - cost | ≥ ¥6 |
| Occupancy rate | busy_hours / total | ≥ 70% |
| Cost per 1M tokens | Σcost / Σtokens × 1M | 各模型不同 |
| Revenue/user/month | Σrev / active_users | ≥ ¥300 |
| CAC | 营销 + 销售 / 新客户 | ≤ ¥200 |
| LTV | ARPU × avg_lifetime | ≥ ¥3000 |
| LTV / CAC | ≥ 3 | |
| Payback period | CAC / (ARPU × margin) | ≤ 6 月 |
八、AI 辅助决策(长期)
输入:过去 30 天所有 fact 数据 输出:
- 建议下线的模型
- 建议加副本的模型
- 建议涨价 / 降价的模型
- 建议关注的流失客户
- 建议采购的新卡型
实现:每日跑一次分析任务,把建议推到管理层飞书 + 门户 Dashboard 的"AI 建议"栏。
九、落地节奏
Week 1-2:Prometheus + DCGM Exporter + Grafana 起来,基础指标可看 Week 3-4:Gateway 埋点,PG requests 表数据全 Week 5-8:ClickHouse 起来,跑基础 SQL,出第一版 Operator Dashboard Month 3:AlertManager 规则全,飞书告警通道 Month 6:Executive Dashboard + Customer Dashboard + AI 建议 Month 12:自动化优化决策(缩扩容、灌注、迁移)
十、关键判断
40 卡阶段:能靠人肉盯盘 + 每日 30 分钟 review 1000 卡阶段:必须自动化告警 + 建议 万卡阶段:自研 FinOps 平台是核心竞争力