02.5采样策略 控制成本和数据完整性

分类: OpenTelemetry架构概览

采样策略:控制成本和数据完整性

本节将学习:为什么需要采样?头部采样和尾部采样的区别?智能采样策略是什么?如何选择采样策略?

为什么需要采样

挑战是什么? 高流量系统的数据量非常大。

举个例子:假设系统 QPS 是 10,000 请求/秒,每个请求产生 1 个 Trace。每天就是 864,000,000 个 Trace,这个数量非常大。

存储成本如何? 每个 Trace 平均 10KB。每天需要存储 8.6TB,每月成本就非常昂贵。这是一个巨大的成本压力。

采样价值是什么? 通过采样,可以:

  • 降低存储成本(80-90%)。可以只采集 10% 的数据,但是保持 95% 以上的可观察性质量。
  • 保持可观察性质量(95% 以上)。通过智能采样策略,可以保留关键信息,比如错误、慢请求。

采样目标:降低存储成本、保持可观察性质量、保留关键信息。这就是为什么需要采样。

头部采样和尾部采样的区别

头部采样是什么? 在请求开始时决定是否采样。

头部采样有什么特点?

  • 在请求开始时决定,决策快速
  • 但是无法基于完整信息决策,可能丢失重要信息
  • 例如,每 10 个请求采样 1 个(10%),随机采样,基于服务名称采样

尾部采样是什么? 在请求完成后决定是否采样。

尾部采样有什么特点?

  • 在请求完成后决定,可以基于完整信息决策,保留重要信息(错误、慢请求)
  • 但是需要缓存所有数据,成本较高
  • 例如,采样所有错误请求,采样慢请求(> 1 秒),采样特定业务的请求

什么时候使用哪种? 一般来说,头部采样适用于高流量系统,降低成本。尾部采样适用于需要保留关键信息的场景,比如错误追踪。

智能采样策略

智能采样策略是什么? 结合头部采样和尾部采样的优点。可以根据请求的特征,智能地决定是否采样。

智能采样策略的策略是什么?

第一个策略:采样所有错误请求(100%)。 所有错误请求都采样。这样就能追踪所有错误。

第二个策略:采样慢请求(> 1 秒,100%)。 所有慢请求都采样。这样就能追踪所有性能问题。

第三个策略:采样特定业务的请求(100%)。 特定业务的请求都采样。例如,订单创建、支付等关键业务。

第四个策略:其他请求随机采样(10%)。 其他请求随机采样 10%。这样就能降低存储成本。

策略优势:保留所有重要信息、降低存储成本(80-90%)、保持可观察性质量(95% 以上)。

这就是智能采样策略。它既能保留重要信息,又能降低存储成本。

本节小结

在本节中,我们学习了采样策略:

第一个是采样的必要性。 降低存储成本(80-90%),保持可观察性质量(95% 以上),保留关键信息。

第二个是头部采样。 请求开始时决策,快速但可能丢失重要信息,适用于高流量系统。

第三个是尾部采样。 请求完成后决策,保留重要信息但成本高,适用于关键业务。

第四个是智能采样。 结合两者优点,保留重要信息,降低成本,适用于一般场景。

选择建议

  • 高流量系统:头部采样 + 智能采样
  • 关键业务:尾部采样 + 智能采样
  • 一般场景:智能采样

这就是采样策略。理解采样策略,是控制成本和保持质量的关键。

在下一节,我们将了解语义约定:标准化属性命名。看看如何标准化属性的命名,保证一致性。