一种全链路追踪数据随机上报的方法及系统技术方案

技术编号:39747406 阅读:10 留言:0更新日期:2023-12-17 23:45
本发明专利技术涉及计算机通讯技术领域,特别是一种全链路追踪数据随机上报的方法及系统,所述方法包括以下步骤:步骤

【技术实现步骤摘要】
一种全链路追踪数据随机上报的方法及系统


[0001]本专利技术涉及计算机通讯
,特别是一种全链路追踪数据随机上报的方法及系统


技术介绍

[0002]skywalking
为一个开源的分布式系统跟踪和性能分析工具

[0003]在当前互联网技术中,全链路追踪信息能够串联上下游的链路信息,通过一个链路标识
traceId
则可以查询出全链路的数据流转

因此全链路追踪技术能够在可以提供端到端的请求路径和跨链路服务调用关系,有助于故障排查和问题定位

通过全链路的追踪信息,可以准确定位出现问题的具体环节

但在当前技术背景下,传统的链路追踪需要在每个链路节点上都进行主动的上报操作,这增加了系统的性能开销和延迟

如果每个请求都要上报完整的链路追踪信息,会导致大量的数据量产生

对于高并发的系统来说,这将造成存储和网络传输的压力,甚至可能引发性能问题

如果仅是某些链路不上报追踪信息,又会导致全链路的追踪信息不完整,仅是单独链路的信息对排查全链路的问题没有价值


技术实现思路

[0004]为了解决上述技术问题,本专利技术提供一种全链路追踪数据随机上报的方法及系统,实现了只在一定概率下进行随机上报操作,降低了系统的性能开销和延迟,提升了系统的性能表现

[0005]本专利技术采用以下技术方案实现:
[0006]一种全链路追踪数据随机上报的方法及系统,所述方法包括以下步骤:
[0007]步骤
S1、
链路在收到请求时,首先判断请求头中是否包含全链路追踪标识
traceId
,如果存在,即为下游链路;如果不存在或为空,即为初始链路,此时生成一个随机的
traceId
作为标识,然后再生成一个随机小数
n
与概率阈值
t
进行比较,根据比较结果决定是否需要将初始链路的追踪信息上报至
skywalking
,然后将生成的
traceId
和上报标识
ok
放入请求头中传到下游链路;
[0008]步骤
S2、
下游链路收到请求后,从请求头中获取全链路追踪标识
traceId
和上报标识
ok
,如果
traceId
为空,则表示下游链路为初始链路,执行步骤
S1
;如果
traceId
不为空,则需要根据上报标识
ok
的值来判断是否需要将下游链路的追踪信息上报至
skywalking

[0009]步骤
S3、

skywalking
的服务器指标达到预警线时,初始链路在能够将初始链路的追踪信息上报至
skywalking
的情况下,选择不上报,并将初始链路的追踪信息放入一个追踪信息数组
traceData
中,并携带追踪信息数组
traceData
请求下游链路;
[0010]步骤
S4、
下游链路收到带有
traceData
数组的请求后,将下游链路的追踪信息添加到
traceData
数组中,将
traceData
数组上报至
skywalking。
[0011]优选的,所述步骤
S1
进一步具体为:生成一个0‑1之间的随机小数
n
,在系统中设置一个追踪数据上报的概率阈值
t

n
进行比较,如果
n>

t
,则将上报标识
ok
设为
false
,并不
上报至
skywalking
;如果
n<t
,则将上报标识
ok
设为
true
,并上报至
skywalking。
[0012]优选的,所述步骤
S2
进一步具体为:如果
traceId
不为空,且上报标识
ok

true
,则将下游链路的追踪信息上报至
skywalking
;如果
traceId
不为空,且上报标识
ok

false
,则不将下游链路的追踪信息上报至
skywalking。
[0013]优选的,所述步骤
S4
进一步具体为:如果下游链路的下方还有下游链路,则继续携带
traceData
数组请求下方的下游链路;如果下游链路的下方没有下游链路,则下游链路是全链路的最后一个链路,则批量将
traceData
数组上报至
skywalking。
[0014]一种全链路追踪数据随机上报的系统,所述系统包括判断模块

上报模块
A、
非上报模块

上报模块
B

[0015]判断模块:链路在收到请求时,首先判断请求头中是否包含全链路追踪标识
traceId
,如果存在,即为下游链路;如果不存在或为空,即为初始链路,此时生成一个随机的
traceId
作为标识,然后再生成一个随机小数
n
与概率阈值
t
进行比较,根据比较结果决定是否需要将初始链路的追踪信息上报至
skywalking
,然后将生成的
traceId
和上报标识
ok
放入请求头中传到下游链路;
[0016]上报模块
A
:下游链路收到请求后,从请求头中获取全链路追踪标识
traceId
和上报标识
ok
,如果
traceId
为空,则表示下游链路为初始链路,执行步骤
S1
;如果
traceId
不为空,则需要根据上报标识
ok
的值来判断是否需要将下游链路的追踪信息上报至
skywalking

[0017]非上报模块:当
skywalking
的服务器指标达到预警线时,初始链路在能够将初始链路的追踪信息上报至
skywalking
的情况下,选择不上报,并将初始链路的追踪信息放入一个追踪信息数组
traceData
中,并携带追踪信息数组
traceData
请求下游链路;
[0018]上报模块
B
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种全链路追踪数据随机上报的方法,其特征在于:所述方法包括以下步骤:步骤
S1、
链路在收到请求时,首先判断请求头中是否包含全链路追踪标识
traceId
,如果存在,即为下游链路;如果不存在或为空,即为初始链路,此时生成一个随机的
traceId
作为标识,然后再生成一个随机小数
n
与概率阈值
t
进行比较,根据比较结果决定是否需要将初始链路的追踪信息上报至
skywalking
,然后将生成的
traceId
和上报标识
ok
放入请求头中传到下游链路;步骤
S2、
下游链路收到请求后,从请求头中获取全链路追踪标识
traceId
和上报标识
ok
,如果
traceId
为空,则表示下游链路为初始链路,执行步骤
S1
;如果
traceId
不为空,则需要根据上报标识
ok
的值来判断是否需要将下游链路的追踪信息上报至
skywalking
;步骤
S3、

skywalking
的服务器指标达到预警线时,初始链路在能够将初始链路的追踪信息上报至
skywalking
的情况下,选择不上报,并将初始链路的追踪信息放入一个追踪信息数组
traceData
中,并携带追踪信息数组
traceData
请求下游链路;步骤
S4、
下游链路收到带有
traceData
数组的请求后,将下游链路的追踪信息添加到
traceData
数组中,将
traceData
数组上报至
skywalking。2.
根据权利要求1所述的一种全链路追踪数据随机上报的方法,其特征在于:所述步骤
S1
进一步具体为:生成一个0‑1之间的随机小数
n
,在系统中设置一个追踪数据上报的概率阈值
t

n
进行比较,如果
n>

t
,则将上报标识
ok
设为
false
,并不上报至
skywalking
;如果
n<t
,则将上报标识
ok
设为
true
,并上报至
skywalking。3.
根据权利要求2所述的一种全链路追踪数据随机上报的方法,其特征在于:所述步骤
S2
进一步具体为:如果
traceId
不为空,且上报标识
ok

true
,则将下游链路的追踪信息上报至
skywalking
;如果
traceId
不为空,且上报标识
ok

false
,则不将下游链路的追踪信息上报至
skywalking。4.
根据权利要求1所述的一种全链路追踪数据随机上报的方法,其特征在于:所述步骤
S4
进一步具体为:如果下游链路的下方还有下游链路,则继续携带
traceData
数组请求下方的下游链路;如果下游链路的下方没有下游链路,则下游链路是全链路的最后一个链路,则批量将
traceData
数组上报至
skywalking。5.
一种全链路追踪数据随机上报的系统...

【专利技术属性】
技术研发人员:刘德建叶伟李佳
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:

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

1