跳转到主要内容
遥测数据的增长总是快于它能回答的问题。一个忘记关闭的调试日志、一个带用户 ID 的标签、一个每秒记录一次的健康检查,都可能让存储翻倍,却不会让任何一次故障更容易解决。在无用的地方削减数据量,保留排查真正需要的数据。

先度量

在做任何改动之前,先找出数据量集中在哪些数据流上。 记下最大几个数据流的数字,作为评估每项改动的基线。

在存储前丢掉没人看的数据

最省钱的字节是从未被存储的字节。对于日志,实时流水线在接入时、存储之前运行:
  • 过滤事件 丢掉生产环境中没人看的健康检查、就绪探针和调试日志。
  • 采样 只保留嘈杂但有用的事件类型中的一部分。使用 按字段一致采样 时,某个字段取值相同的事件(例如同一个请求 ID)会一起保留或一起丢弃。
  • 删除字段 去掉没有查询用到的大字段,例如完整的请求体。
能改发送端时优先改发送端:生产环境使用 info 日志级别,或在采集器中丢弃噪声,还能节省网络。被丢弃的事件无法找回;只对重复出现的事件采样,永远不要对错误采样。 链路数据量最好在源头或 OpenTelemetry Collector 中削减。采样时保证同一条链路的 Span 一起保留,并注意应用性能指标和 SLO 只统计到达的 Span。对于用户体验数据,按应用设置会话采样。

只在需要的时间内保留数据

保留期应根据排查实际回看多远来设置,并为发现较晚的问题留出余量。缩短保留期会在下一次清理时删除随之过期的数据,降采样会删除原始样本,两者都无法撤回。日志和链路请保持 按天合并小文件 开启,这样跨多天的查询打开的文件更少。

控制指标序列规模

每种不同的标签取值组合都是一个序列。取值没有上限的标签(例如用户 ID、请求 ID 或原始 URL)会无限地产生序列,随后基数上限会拒绝整个组织的新序列。
  • 添加标签后检查指标页的 基数。
  • 用路由模板替换原始路径,用套餐、区域这类类别替换 ID。
  • 把每个请求的细节放到日志或 Span 中,它们不会按取值产生成本。

让查询保持低成本

验收标准

  • 知道最大的五个数据流,以及它们在改动前后的日数据量。
  • 没有数据流意外存储健康检查、就绪探针或生产环境调试日志。
  • 每个数据流的保留期都是有意设置的,长期保留的指标已开启降采样。
  • 指标序列数每周保持稳定,并远低于上限。
  • 大数据流设置了最大查询窗口,常用过滤字段已建索引。

相关指南

最后修改于 2026年10月26日