02.5、采样策略 控制成本和数据完整性
采样策略:控制成本和数据完整性
本节将学习:为什么需要采样?头部采样和尾部采样的区别?智能采样策略是什么?如何选择采样策略?
为什么需要采样
挑战是什么? 高流量系统的数据量非常大。
举个例子:假设系统 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% 以上),保留关键信息。
第二个是头部采样。 请求开始时决策,快速但可能丢失重要信息,适用于高流量系统。
第三个是尾部采样。 请求完成后决策,保留重要信息但成本高,适用于关键业务。
第四个是智能采样。 结合两者优点,保留重要信息,降低成本,适用于一般场景。
选择建议:
- 高流量系统:头部采样 + 智能采样
- 关键业务:尾部采样 + 智能采样
- 一般场景:智能采样
这就是采样策略。理解采样策略,是控制成本和保持质量的关键。
在下一节,我们将了解语义约定:标准化属性命名。看看如何标准化属性的命名,保证一致性。