可观测性成本应该如何控制?
简化版
可观测性成本由采集量、基数、保留期、索引、查询和跨区传输共同决定。应先按信号价值分级,再用指标聚合、日志分层索引、Trace 采样、冷热存储和租户预算控制,不能粗暴全量关闭遥测。
详细版
建立服务/信号成本归属,监控 bytes、series、spans、查询扫描量和单位请求遥测成本。错误、审计和关键链路高保真,健康高频数据采样或降精度;短期热存支持排障,长期冷存满足审计。
任何降本都要设置质量护栏:告警覆盖率、Trace 完整率、日志丢弃率和事故回溯成功率。先消除无效高基数、重复日志和过度索引,再调整采样与保留,避免省钱后失去诊断能力。
完整版教学
一、成本从哪里来
采集 Agent 占 CPU,网络传输付带宽,后端写入与索引占计算和存储,查询又扫描数据。只看磁盘账单会漏掉高基数索引和跨区出口等大项。
心法:按“每种信号带来什么决策”分配成本,而不是所有数据同等保留。
二、粗略容量算例
日志 20MB/s × 86400s ≈ 1.728TB/天(未计副本)
保留 30 天、2 副本约 103.68TB(未计压缩与索引)
实际应用落盘压缩率和索引开销校准;重复除压缩比会低估容量。
三、三类信号的不同杠杆
| 信号 | 主要成本 | 优先手段 |
|---|---|---|
| Metrics | 时间序列基数 | 标签预算、降采样 |
| Logs | 字节与索引 | 级别、字段、分层索引 |
| Traces | span 数与属性 | head/tail sampling |
| Profiles | 采样频率 | 按需开启 |
统一用一个保留策略会浪费高价值信号或过度保存低价值数据。
四、日志如何降本
去掉重复堆栈和成功请求逐条 INFO,将固定字段结构化;常查字段进热索引,原文进低成本对象存储。审计日志独立保留,不能被普通成本策略采样。
动态日志级别要有时限,事故结束自动恢复,防止 DEBUG 长期开启。
五、Trace 如何降本
Head sampling 在入口早决定,成本低但可能漏掉后续错误;Tail sampling 看完整结果后保留错误、长尾和稀有属性,但 Collector 需要暂存并承担更高资源。两者可组合。
例如健康请求采 1%,错误请求保留 100%,同时给每租户设置上限,避免事故时全量错误压垮采集器。
六、预算与质量护栏
成本按团队、服务和环境分摊,展示每千请求遥测字节和月趋势。预算超限先通知和限新增高基数,不能静默删除关键告警数据。
降本实验比较费用、告警命中、Trace 可用率和事故回溯;若 MTTR 显著上升,节省并不划算。
跨地域传输常按出口字节收费,应尽量在数据产生区域完成过滤与聚合,同时遵守数据驻留要求。
成本报表要区分正常增长与异常泄漏,例如业务流量增长 20% 时遥测字节增长 200%,通常说明埋点或日志级别变化。
七、常见误区与追问
- 误区:缩短所有保留期最简单。 审计和低频事故可能因此无法回溯。
- 误区:压缩后字节小就没有成本。 索引、查询和副本仍占资源。
- 误区:统一采样率最公平。 错误、长尾与关键业务价值不同。
- 误区:成本只由平台团队负责。 埋点 owner 决定大部分数据量。
- 追问:先优化什么? 无界标签、重复日志、无用字段和过度索引。
- 追问:如何防事故时成本爆炸? 租户限额、动态采样和 Collector 保护。
- 追问:怎样证明降本安全? 用诊断覆盖、告警质量和演练回溯验证。
八、加强记忆
成本治理沿“量化来源—按价值分级—各信号用不同杠杆—冷热分层—租户预算—质量验收”推进。先清理无效数据,再动采样和保留;错误、审计与关键旅程优先保真,任何降本都必须用可诊断性与 MTTR 证明没有透支可靠性。