分布式追踪与监控:原理、应用与实践
在分布式系统的监控和调试中,分布式追踪和监控技术起着至关重要的作用。本文将深入探讨分布式追踪的采样方法、在单体和微服务架构中的应用、遥测数据的关联,以及监控系统的差异和图表与警报的相关内容。
一、分布式追踪采样方法
1.1 概率采样器的局限性
概率采样器通常不是最佳选择,主要有以下两个原因:
- 成本问题 :无论选择何种采样概率,追踪成本都会随流量线性增长。例如,原本预计 API 端点每秒接收不超过 100 个请求,采样率设为 10%,即每秒 10 个追踪。但当流量突然增加到每秒 10,000 个请求时,每秒将发送 1,000 个追踪。而速率限制采样器可以对成本设置固定上限,不受吞吐量影响。
- 数据空洞问题 :与基于速率的采样器一样,概率采样器在做出采样决策时不考虑追踪 ID 和头部信息,这会导致端到端的追踪数据出现空洞。在低吞吐量系统中,基于速率的采样器可能几乎没有空洞,因为单个子系统未超过速率阈值;但概率采样器在每个吞吐量单位上都有均匀的空洞概率,即使是低吞吐量系统也可能存在空洞。
1.2 边界采样器
边界采样器是概率采样器的一种变体,它通过在边缘(与系统的首次交互)做出一次采样决策,并将该决策向下游服务和组件传播,从而解决了数据空洞问题。每个组件的追踪上下文中包含一个采样决策,该决策作为 HTTP 头部添加,并由下游组件提取到追踪上下文中。
1.3 采样对异常检测的影响
基于采样追踪构建的异常检测系统通常效果不佳,除非组织承担 100% 采样的成本。以
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



