一种分布式追踪采样方法、装置及电子设备
- 国知局
- 2024-09-11 14:54:47
本发明涉及数据采样,尤其涉及一种分布式追踪采样方法、装置及电子设备。
背景技术:
1、微服务系统因为扩张的规模和复杂的交互变得难以被分析和维护。分布式追踪被设计用来观测请求在系统内部的处理轨迹和执行细节,帮助操作员理解系统的内部架构和定位系统中的故障。现有的大型微服务系统比如netflix一天会产生数十亿条请求,存储所有请求产生的追踪会造成极大的存储开销。
2、现有的分布式追踪的实现方案,比如zipkin、jaeger和skywalking提供了基于头部的采样器来缓解追踪带来的存储压力。基于头部的采样器以固定的概率(比如1%)来决定在请求到来时是否生成追踪,有效地将系统产生的追踪总量控制在特定比例。然而,基于头部的采样器因为无法感知到请求的类型和状态而丢失大量有价值的追踪。尤其是微服务系统中追踪分布呈现明显的长尾现象,基于头部的采样器可能会丢失罕见的追踪类型。更糟糕的是,由于基于头部的采样器无法预测到请求的状态,大量潜在的异常追踪(比如性能降级或者业务异常的追踪)不会被捕获。
3、近些年,几种基于尾部的采样器被提出,用于保障采样后追踪的数据质量。不像基于头部的采样器在追踪产生前做出采样决策,基于尾部的采样器根据追踪的价值进行偏好采样。现有的尾部采样器大多由编码和赋权两部分组成。perch和sifter基于trace的结构进行编码,并在采样时给予罕见结构的追踪更多的关注。sieve则在编码中加入了对追踪中服务延时的考量。然而,这些采样器仍存在以下局限:
4、1、不全面的追踪类型和不均衡的类型分布。这些采样器在理论和实际上都无法保证全面覆盖所有追踪类型,即使给予了罕见类型更高的权值。由于缺乏对已采样追踪数据状态的持久感知,这些采样器很难维持追踪分布的均衡,导致大量冗余追踪集中在少数几个热点类型。
5、2、对于异常追踪极不敏感。异常追踪有丰富的价值,有助于操作员定位故障服务和识别故障类型。perch和sifter的编码和赋权过程不涉及到对追踪中延时和状态码的处理,在异常追踪的召回率上并不优于基于头部的采样器。sieve虽然在编码中引入了延时信息,但是过高维度的特征使得采样器对单个服务的高延时不敏感。不仅如此,业务异常的追踪可能因为没有延时异常从而被上述采样器忽略。
6、3、在延时分布上的不一致性。采样后的追踪将会用于许多下游任务,比如弹性伸缩和性能分析。弹性伸缩任务会根据接口的延时分布设置触发阈值。然而,现有的尾部采样器都没有考虑过维持采样前后各接口延时分布的一致性。
7、对于现有的追踪采样技术中存在的采样均衡性和一致性较差的问题,目前还没有较好的解决方案。
技术实现思路
1、本发明提供一种分布式追踪采样方法、装置及电子设备,用以解决现有技术中存在的采样均衡性和一致性较差的缺陷。
2、第一个方面,本发明提供一种分布式追踪采样方法,包括:
3、获取追踪数据,识别所述追踪数据的数据类型,并将所述追踪数据的状态信息缓存至状态注册机;
4、根据所述状态注册机中的所述追踪数据的状态信息,直接采样所述追踪数据中的异常追踪;
5、根据所述追踪数据的数据类型,确定不同数据类型的所述追踪数据的采样额度;
6、基于所述追踪数据的采样额度,确定分组采样策略,并按照所述分组采样策略进行追踪采样。
7、根据本发明提供的一种分布式追踪采样方法,识别所述追踪数据的数据类型,并将所述追踪数据的状态信息缓存至状态注册机,包括:
8、基于宽度优先原则识别所述追踪数据的数据类型,并为每种数据类型的所述追踪数据生成固定编号;
9、按照所述追踪数据的数据类型进行分组,并缓存至所述状态注册机中。
10、根据本发明提供的一种分布式追踪采样方法,按照所述追踪数据的数据类型进行分组,并缓存至所述状态注册机中之后,包括:
11、构建阈值表,所述阈值表用于存储不同数据类型的所述追踪数据的延时阈值。
12、根据本发明提供的一种分布式追踪采样方法,根据所述状态注册机中的所述追踪数据的状态信息,直接采样所述追踪数据中的异常追踪,包括:
13、遍历检查所述追踪数据中各接口的状态码,筛选出所述追踪数据中的业务异常追踪,并对所述业务异常追踪进行识别采样;
14、对比所述追踪数据的延时阈值和历史延时数据,筛选出所述追踪数据中的性能降级追踪,并对所述性能降级追踪进行识别采样。
15、根据本发明提供的一种分布式追踪采样方法,根据所述追踪数据的数据类型,确定不同数据类型的所述追踪数据的采样额度,包括:
16、根据预设的方案分配目标,生成若干额度分配方案;
17、基于差分进化算法生成初始种群,对所述初始种群进行迭代处理,直至迭代次数达到次数阈值,确定所述追踪数据的采样额度;所述初始种群包括若干种群个体,所述种群个体为所述额度分配方案。
18、根据本发明提供的一种分布式追踪采样方法,对所述额度分配方案进行迭代处理,包括:
19、从所述种群个体中随机确定候选个体,并未每个所述候选个体选择若干基准个体;
20、以预设的分配概率,依据所述基准个体生成交叉个体;
21、对比所述交叉个体和所述候选个体的适应度,并更新候选个体。
22、根据本发明提供的一种分布式追踪采样方法,确定所述追踪数据的采样额度,包括:
23、当所述迭代次数达到次数阈值时,将最后一次迭代产生的候选个体所对应的额度分配方案作为所述追踪数据的采样额度。
24、根据本发明提供的一种分布式追踪采样方法,基于所述追踪数据的采样额度,确定分组采样策略,并按照所述分组采样策略进行追踪采样,包括:
25、基于所述追踪数据的采样额度,为每种数据类型的所述追踪数据生成若干采样组合方案;
26、基于差分进化算法,确定每种数据类型的所述追踪数据的最终采样组合,并按照所述最终采样组合对所述追踪数据进行追踪采样。
27、第二个方面,本发明还提供一种分布式追踪采样装置,包括:
28、获取模块,用于获取追踪数据,识别所述追踪数据的数据类型,并将所述追踪数据的状态信息缓存至状态注册机;
29、处理模块,用于根据所述状态注册机中的所述追踪数据的状态信息,直接采样所述追踪数据中的异常追踪;
30、分配模块,用于根据所述追踪数据的数据类型,确定不同数据类型的所述追踪数据的采样额度;
31、采样模块,用于基于所述追踪数据的采样额度,确定分组采样策略,并按照所述分组采样策略进行追踪采样。
32、第三个方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一个方面所述的分布式追踪采样方法。
33、第四个方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一个方面所述的分布式追踪采样方法。
34、第五个方面,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一个方面所述的分布式追踪采样方法。
35、与现有技术相比,本发明具有以下有益效果:
36、本发明提供的分布式追踪采样方法,通过为每种数据类型的追踪数据分配对应的采样额度,保证采样的追踪数据的数据类型的全面性和均衡性。给定每种追踪数据采样额度之后,对不同类型的追踪数据进行分组采样,被采样的追踪数据将被持久地存储到文件系统中,其他的追踪数据则从状态注册机中被丢弃,通过分组采样的形式,保证了采样后追踪数据延时分布的一致性。综上,通过本方法能够解决现有的采样方法存在的采样均衡性和一致性较差的问题。
本文地址:https://www.jishuxx.com/zhuanli/20240911/292540.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表