一种基于sidecar模型的分布式追踪局部采样方法及系统技术方案

技术编号:36774883 阅读:13 留言:0更新日期:2023-03-08 21:58
本发明专利技术公开一种基于sidecar模型的分布式追踪局部采样方法,包括:在节点中部署sidecar容器;对节点中的进程进行字节码增强,得到字节码增强后的进程;拦截字节码增强后的进程发送的trace请求,并将trace请求发送到sidecar容器中;对sidecar容器中的trace请求进行分类,得到若干trace请求种类;获取各个trace请求种类的trace请求的访问信息,并根据访问信息判断trace请求是否异常;若trace请求异常,则对trace请求进行链路分析。本发明专利技术还公开一种基于sidecar模型的分布式追踪局部采样系统。本发明专利技术占用的网络带宽和内存等均较少,能节省成本。节省成本。节省成本。

【技术实现步骤摘要】
一种基于sidecar模型的分布式追踪局部采样方法及系统


[0001]本专利技术涉及云计算
,具体涉及一种基于sidecar模型的分布式追踪局部采样方法及系统。

技术介绍

[0002]为了能够降低分布式追踪的数据处理和存储成本,一般分布式追踪在都会采样处理,分布式追踪常用的采样方法分为两种,一种是头部采样和基于头部采样的采样率调整方法,另外一种是尾部采样方法。
[0003]头部采样方法和动态调整的采样方法,是最容易实现的,也是目前分布式追踪最常使用的方法,在请求访问一开始就决定整条分布式追踪是否要记录下来,并且通过trace请求上下文一起传递到后续节点,后续节点根据采用标识决定是否保留节点在这次请求中所产生的span数据。头部采样和基于头部采样的动态调整方法虽然容易实现,但是面对生产环境本就不多的生产事故,采样保留下来的99.99%的trace请求都是正常的trace请求,而面对开发者感兴趣的trace请求即生产事故的trace请求很难保存。
[0004]尾部采样能够很好的规避头部采样的问题,因为尾部采样的方式是将所有trace请求先发出来,等到请求结束之时,再判断trace请求是否和生产事故有关,决定是否应该发送出来,因为决策滞后了,所以能够保证生产事故所有问题都被完全保留下来,但是尾部采样也会带来很多其他的问题,主要有两个方面:
[0005]1、网络带宽方面,由于尾部采样所有请求都需要集中式发送至尾部采样节点,带来的问题就是trace请求数据将会将整个数据中心网络带宽占满,以一个节点trace请求数据为2K字节,那么平均数据中心10万次每秒入口请求访问,每个请求链路平均10层,那数据中心内部将产生每秒百万次的访问,这只是一个中型互联网公司的级别,这样的访问请求将如果将所有trace请求数据都发送至某一个点或者某几个点,每个点承受的网络带宽将达到G字节级别,虽然万兆网已经在数据中心普及,但是万兆网的核心网络都用来承载trace请求数据势必会对其原有核心业务正常的网络请求造成影响,trace请求数据与核心业务会在网络带宽上形成激烈的竞争,这不是分布式追踪系统想看到的。
[0006]2、内存方面,由于请求数据量过大,尾部采样要求先保留所有数据在内存之中,随后才能决策trace请求数据的保留与否,这就导致了如果缓存30秒的数据,每个节点内存数量也讲达到T级别,采用多个节点分担,也会造成每个节点是几百G内存的要求,这对于很多公司而言资源成本过于高昂,难以承受。

技术实现思路

[0007]本专利技术的目的在于提供一种占用的网络带宽和内存均较少的一种基于sidecar模型的分布式追踪局部采样方法及系统。
[0008]为解决上述技术问题,本专利技术提供一种基于sidecar模型的分布式追踪局部采样方法,包括以下步骤:
[0009]在节点中部署sidecar容器;
[0010]对节点中的进程进行字节码增强,得到字节码增强后的进程;
[0011]拦截字节码增强后的进程发送的trace请求,并将trace请求发送到sidecar容器中;所述trace请求包括URL和访问信息;
[0012]根据sidecar容器中的trace请求的URL,对sidecar容器中的trace请求进行分类,得到若干trace请求种类;
[0013]根据trace请求的访问信息,对各个trace请求种类中的trace请求进行排序;
[0014]根据排序结果和trace请求的访问信息,判断各个trace请求种类中trace请求是否异常;
[0015]若trace请求异常,则对trace请求进行链路分析。
[0016]优选地,根据sidecar容器中的trace请求的URL,对sidecar容器中的trace请求进行分类,得到若干trace请求种类,具体包括以下步骤:
[0017]将sidecar容器中的race请求的URL分解成若干URL组件;
[0018]通过Gibberish

Detector识别URL组件中的乱语,将乱语替换成*,得到修正后URL组件;
[0019]根据修正后URL组件得到收敛后URL;
[0020]根据收敛后URL,对sidecar容器中的trace请求进行分类,得到若干trace请求种类。
[0021]优选地,所述访问信息包括返回码和延时信息。
[0022]优选地,根据排序结果和trace请求的访问信息,判断各个trace请求种类中trace请求是否异常,具体包括以下步骤:
[0023]根据trace请求的访问信息的返回码,判断trace请求的是否正确;
[0024]若trace请求错误,则trace请求为异常;
[0025]若trace请求正确,则根据访问信息的延时信息和排序结果,判断求trace请求是否过慢;
[0026]若trace请求过慢,则trace请求为异常。
[0027]优选地,对trace请求进行链路分析,具体包括以下步骤:
[0028]将trace请求发送到分布式追踪系统进行跟踪。
[0029]优选地,对节点中的进程进行字节码增强,得到字节码增强后的进程,具体包括以下步骤:
[0030]使用instrument调试工具对节点中的进程进行字节码增强,得到字节码增强后的进程。
[0031]优选地,拦截字节码增强后的进程发送的trace请求,并将trace请求发送到sidecar容器中;具体包括以下步骤:
[0032]通过ASM技术拦截字节码增强后的进程发送的trace请求,并将trace请求发送到sidecar容器中。
[0033]优选地,所述URL组件包括schema、authority、path、query及fragment。
[0034]本专利技术还提供一种基于sidecar模型的分布式追踪局部采样系统,包括:
[0035]部署模块,用于在节点中部署sidecar容器;
[0036]增强模块,用于对节点中的进程进行字节码增强,得到字节码增强后的进程;
[0037]拦截模块,用于拦截字节码增强后的进程发送的trace请求,并将trace请求发送到sidecar容器中;所述trace请求包括URL和访问信息;
[0038]分类模块,用于根据sidecar容器中的trace请求的URL,对sidecar容器中的trace请求进行分类,得到若干trace请求种类;
[0039]排序模块,用于根据trace请求的访问信息,对各个trace请求种类中的trace请求进行排序,得到排序结果;
[0040]判断模块,用于根据排序结果和trace请求的访问信息,判断各个trace请求种类中trace请求是否异常;
[0041]跟踪模块,用于在race请求异常时,对trace请求进行链路分析。
[0042]与现有技术相比,本专利技术的有益本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于sidecar模型的分布式追踪局部采样方法,其特征在于,包括以下步骤:在节点中部署sidecar容器;对节点中的进程进行字节码增强,得到字节码增强后的进程;拦截字节码增强后的进程发送的trace请求,并将trace请求发送到sidecar容器中;所述trace请求包括URL和访问信息;根据sidecar容器中的trace请求的URL,对sidecar容器中的trace请求进行分类,得到若干trace请求种类;根据trace请求的访问信息,对各个trace请求种类中的trace请求进行排序,得到排序结果;根据排序结果和trace请求的访问信息,判断各个trace请求种类中trace请求是否异常;若trace请求异常,则对trace请求进行链路分析。2.根据权利要求1所述的一种基于sidecar模型的分布式追踪局部采样方法,其特征在于,根据sidecar容器中的trace请求的URL,对sidecar容器中的trace请求进行分类,得到若干trace请求种类,具体包括以下步骤:将sidecar容器中的race请求的URL分解成若干URL组件;通过Gibberish

Detector识别URL组件中的乱语,将乱语替换成*,得到修正后URL组件;根据修正后URL组件得到收敛后URL;根据收敛后URL,对sidecar容器中的trace请求进行分类,得到若干trace请求种类。3.根据权利要求1所述的一种基于sidecar模型的分布式追踪局部采样方法,其特征在于:所述访问信息包括返回码和延时信息。4.根据权利要求3所述的一种基于sidecar模型的分布式追踪局部采样方法,其特征在于,根据排序结果和trace请求的访问信息,判断各个trace请求种类中trace请求是否异常,具体包括以下步骤:根据trace请求的访问信息的返回码,判断trace请求的是否正确;若trace请求错误,则trace请求为异常;若trace请求正确,则根据访问信息的延时信息和排序结果,判断求trace请求是否过慢;若trace请求过慢,则trace请求为异常;若trace请求未过慢,...

【专利技术属性】
技术研发人员:苌程李留蔡敏伟王丽丽王大鑫宋宇杰
申请(专利权)人:杭州谐云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1