S4 Metrics
治理 CloudWatch metric cardinality
降低 CloudWatch custom-metric 账单:在 ingest 端治理 metric cardinality,然后在整个 AWS Organization 内自动建立 baseline 并汇总节省。
S4 Metrics 在 ingest edge 治理 CloudWatch custom-metric cardinality — 在 PutMetricData 之前丢弃 high-cardinality dimensions、对 numeric dimensions 分 bucket,并进行 window aggregation,因此只为所需 series 付费,而不是为无边界的 series 爆炸付费。Open-source metricsd collector (StatsD/DogStatsD + OTLP/EMF/PutMetricData intake) 负责治理并发送到 CloudWatch,另可选 full-resolution S3/Prometheus tee。Commercial layer 增加 auto-baseline 和 AWS Organizations consolidated rollup。
面临挑战
CloudWatch 按唯一的时间序列(命名空间 + 指标名称 + 维度值组合)对自定义指标进行计费,其中前 10,000 个序列在阶梯费率下每月每个收费 $0.30。少数高基数维度 — user_id、request_id、path、instance_id — 会组合式地相乘并膨胀为数千到数万个序列。推高账单的不是字节数或请求量,而是这种唯一序列的无节制爆炸。
工作原理
- 1
将遥测数据指向 metricsd
仅需将您的 StatsD/DogStatsD、OTLP、EMF 或 PutMetricData 发送端的终端节点覆盖为指向 metricsd 收集器,无需改动任何应用程序代码。
- 2
为您成本最高的维度建立基线
Auto-baseline 通过 ListMetrics 以只读方式扫描您的账户,根据维度对计费序列数量的贡献进行排名,并推荐一套包含价格估算的治理规则集。
- 3
在执行 PutMetricData 之前进行治理
在发送前应用规则来 drop、roll up、bucket 和进行窗口聚合,从而仅将值得付费的序列发送到 CloudWatch 的计费路径。
产品亮点
Ingest 时的 cardinality governance:在 PutMetricData 前 drop / bucket / aggregate。
Auto-baseline 会对成本最高的 dimensions 排名,并提出带价格估算的 rule set。
通过 READ-ONLY (ListMetrics-only) cross-account role 实现 AWS Organizations consolidated rollup。
包含内容
- metricsd 开源收集器 — 接收 StatsD/DogStatsD、OTLP、EMF 和 PutMetricData,然后通过 govern、aggregate 并 emit 到 CloudWatch。
- 治理引擎 — 对维度进行确定性的 keep / drop / rollup / bucket / sample 转换,并采用 60 秒窗口聚合和 DDSketch 分位数,停止每个请求都发送一个序列。
- 感知阶梯费率的美元模拟运行(dry-run)— 基于文件或实时的只读 ListMetrics 扫描,对照 CloudWatch 阶梯计费预估变更前、变更后及节省费用,供您在应用前进行预览。
- Auto-baseline 规则推荐(商业版)— 对成本最高的维度进行排名,并导出包含价格估算的规则集,格式为原生的开源 YAML。
- AWS Organizations 整合节省总览(商业版)— 以只读、计算精确阶梯费率的方式,提供各账户以及组织总计的预估节省费用。
- 可选的全分辨率分流(tee)— 将丢弃的维度镜像到 S3 或 Prometheus remote-write,在保留完整细节的同时将其从按序列计费的路径中移除。
- 原生的开源 YAML 规则 — 开源 metricsd 可以直接读取,无厂商锁定风险。
适用场景
由于 user_id、request_id 或 path 被记入指标并膨胀为数千个序列,导致自定义指标账单失控的团队。
需要通过一个计算精确阶梯费率的整合视图来集中掌握基数成本来源的多账户组织。
支出前的成本评估 — 在不修改任何内容的情况下,通过模拟运行对候选规则集进行估价,并将预估节省额与 AMI 费率进行对比。
需要在调查中保留全分辨率细节,但又希望将其移出按序列计费路径的团队(通过 S3 / Prometheus 分流)。
常见问题
丢弃的维度数据会丢失吗?
不会。被丢弃的维度可以以全分辨率分流到 S3 或 Prometheus remote-write;细节没有被删除,只是移到了不按序列计费的存储上,因此您可以在调查时从分流通道中读回 user_id 等数据。
这会使我被绑定吗?
不会。所有规则都是开源 metricsd 可以直接读取的开源 YAML,且推荐的规则在呈献给您之前,已通过开源引擎的往返(round-trip)校验。即使取消订阅,您的收集器和规则也会照常运行,不受任何影响。
它是如何安全地访问我的账户的?它又在哪里运行?
商业版 CLI 是完全只读的 — 仅包含 cloudwatch:ListMetrics、organizations:ListAccounts、sts:AssumeRole — 绝不发送指标或修改您的账户。跨账户扫描会使用可在 CloudTrail 中审计的固定会话名称,扮演(AssumeRole)您创建且仅授予 ListMetrics 权限的角色。一切均在您自己 VPC 内的 AMI 上运行。
支持哪些输入?
metricsd 接收 StatsD/DogStatsD (UDP),以及通过 HTTP 传输的 OTLP 指标、EMF 和 PutMetricData。迁移只需覆盖终端节点。
开源版和商业版有什么区别?
收集器(ingest/govern/aggregate/emit)和感知分层的空运行(dry-run)是开源的 Apache-2.0 metricsd。商业层在此基础上增加了可为您编写规则的 ListMetrics auto-baseline、AWS Organizations 联合汇总、节省额仪表板以及一键式 AMI/CloudFormation 部署 — 基于 OSS 核心构建,绝非分叉。
计费模式
按小时计费的软件费用 + EC2 (t3 / m5 class)。按 instance type 计量,提供年度选项。