TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 780 subscribers
Post #1597 3
一张图看清云账单的钱去哪了

云账单只回答“花了多少”,回答不了“钱去哪了”。AWS Cost and Usage Report 动辄数百万行,每行都精确到资源、小时、费率,但“钱去哪了”是一条路径:从发票进入供应商、落到账户、变成资源、最后归属某个团队。平面表格画不出路径,原生工具一次只能切一个维度,于是会议里总有人要在脑子里做六张表的 join——会议就死在这里。

常见的钱都漏在哪:非生产环境从不休眠。一周 168 小时,工作周大概 50 小时,开发、预发、QA、演示环境 24/7 跑着,每周为没人用的约 120 小时付费,这是账单里最大的可控支出。无归属支出。没有 owner 标签、没有团队、没有成本中心的资源,没人拥有就没人质疑,10–30% 的账单可能归不到任何人头上。僵尸资源。未挂载的卷、空闲负载均衡器、三年前的快照、还在为早已不重要的流量计费的 NAT 网关。“以防万一”的规格。2024 年事故时翻倍的实例,CPU 常年 6%,没人回退。按需计费的常驻负载。跑了两年的基线,还按实验环境计费。行业调查多年把云浪费定在约三分之一,比例不重要,规律才重要:浪费集中在归属最弱的地方,不是谁的钱就最容易漏。

那张图就是桑基图。左边进右边出,所有流入必须流出,藏不住东西。对云账单,四列就够:Provider → Account → Resource type → Team。整张发票作为一条宽带进入,展开直到每美元落到团队上。落到 Unattributed 节点的部分,画得和其他人一样粗、一样显眼——这就是重点。最粗的那条流,是任何仪表盘都不引以为傲的那条。阅读不需要培训,这才是真正的功能:粗带子就去看,眼睛自动跑查询,CFO 十秒读懂,不用人解释可用区是什么。

好版本需要什么:列可重排。默认 Provider → Account → Type → Team,但有时问题关于区域、购买类型或单个资源。点击下钻。图本身就是过滤器,点账户节点整个图收窄到流经它的钱,带面包屑路径。浪费叠加层。标出哪些流含可回收的钱——闲置、超配、可调度——以及多少。Unattributed 作为一等公民流,带一个让人无法忽略的开关。实时数据。“截至周二”的图会被反复质疑,实时的才会被执行。可复现的 URL。会议前一小时把链接贴进 Slack,两边看的是同一张图。

自己搭完全可行,周末项目够出 v1:导出账单数据(AWS 用 CUR,GCP 用 billing export),按三四个维度 GROUP BY,把 source–target 对喂给 d3-sankey、Plotly 或 ECharts。画图是最容易的 20%,剩下 80% 是三件事:Type → Team 这一步取决于标签质量,桑基图会忠实把你的分配缺口画成一条巨大的 Unattributed 带子——这是特性,但要有心理准备;保持实时,定时导出、聚合任务、缓存新鲜度,静态 HTML 的 v1 一周就过期,和之前的透视表一样死掉;交互性,下钻、面包屑、URL 里的视图状态,这一步周末会变成一季度。

我们在 ZopNight 的成本报告里内置了这张图。Cost Breakdown 卡片有 Trend / Flow 切换,Flow 就是桑基图。四列布局可选,默认 Provider → Account → Type → Team,可换成 Service、Region、Purchase type 或下钻到单个资源。图是唯一的过滤面,点节点或流就收窄,面包屑显示下钻路径。节省叠加层把节点和流按可回收金额比例标红,红色粗的地方就是待办清单。悬停任意元素,检查器显示金额及其在源和目标中的占比。维度能被推荐引擎过滤时,显示“$X 可回收”并深链到对应建议;不能行动时隐藏提示,不拿没按钮的数字吊胃口。Unattributed 高亮开关留给那场对话。整个视图状态在 URL 里——布局、下钻路径、叠加层,贴进 Slack,财务打开就是你的视图。每次渲染都从原始成本记录实时取数,没有“更新于昨天”的脚注。


“一张图”的诉求从来不是图表本身,是财务和工程终于能对着同一个对象争论——一个同时看得见“多少”“在哪”“能怎么办”的产物。它一旦变成链接,“钱去哪了”就不再是两周的调研项目,只是你打开的一个东西。

#开发者 #工具 #FinOps #AWS #云成本 #桑基图 #DevOps
@DevToolboxHub
More from @devtoolboxhub
  1. Sep 26, 2026PostgreSQL 复制槽上限参数 max_replication_slots 解析 max_replication_slots 决定共享内存中复制槽数组的长度,仅此而已。它不决…
  2. Sep 26, 2026五仓库架构踩坑:Gitlink 与双 CI Flude 团队复盘了多仓库架构的实践代价。项目从第一分钟起就选择拆分成独立仓库,Pipeline、engine、design-docs…
  3. Sep 26, 2026Xeno Core:TypeScript 后端架构框架 Node.js 复杂系统的架构选型往往决定代码的长期命运。开发者常在两条路之间纠结:要么依赖重度使用实验性装饰器和反射(如…
  4. Sep 25, 2026用 SLO 给 AI Agent 的行为定个预算 Grafana Labs 提出把可靠性工程里的错误预算(error budget)思路用到 AI Agent 上。延迟、token…
  5. Sep 25, 2026Xcode 27.2 改用 JSON 项目格式 Xcode 27.2 用基于 JSON 的 project.xcproj 取代了沿用多年的 project.pbxproj。新建项目…
  6. Sep 25, 2026PostgreSQL 的 max_prepared_transactions 该不该开 prepared transaction 是脱离会话独立存在的两阶段提交事务。执行 PREP…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →