CN116016262B - 一种基于并查集实时检测调用链连贯性的方法和装置 - Google Patents

一种基于并查集实时检测调用链连贯性的方法和装置 Download PDF

Info

Publication number
CN116016262B
CN116016262B CN202211692298.8A CN202211692298A CN116016262B CN 116016262 B CN116016262 B CN 116016262B CN 202211692298 A CN202211692298 A CN 202211692298A CN 116016262 B CN116016262 B CN 116016262B
Authority
CN
China
Prior art keywords
span
real time
analysis platform
call chain
spans
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211692298.8A
Other languages
English (en)
Other versions
CN116016262A (zh
Inventor
林思捷
黄锰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202211692298.8A priority Critical patent/CN116016262B/zh
Publication of CN116016262A publication Critical patent/CN116016262A/zh
Application granted granted Critical
Publication of CN116016262B publication Critical patent/CN116016262B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于并查集实时检测调用链连贯性的方法和装置,通过步骤S1:应用执行业务逻辑,agent生成Span数据;步骤S2:agent标记Span是否叶子节点;步骤S3:agent批量上传Span数据;步骤S4:分析平台接收Span数据;步骤S5:分析平台实时对Span进行连贯性检测;步骤S6:分析平台实时对Span进行完整性检测;步骤S7:分析平台执行调用链决策,解决了尾部连贯采样的缺点,有效减少分析节点内存的消耗,降低分析的延时,提升平台服务的性能及稳定性。

Description

一种基于并查集实时检测调用链连贯性的方法和装置
技术领域
本发明属于数据分析领域,更具体的属于微服务架构多链路调用链检测采样技术领域。
背景技术
随着互联网业务扩张和架构的升级,***变得日趋复杂,越来越多的***开始走向分布式化。Distributed Tracing分布式调用链是一种最常见用于监控分布式应用性能的手段,由一系列的Span片段组成,记录从用户请求到分布式服务的完整调用链路。通过对调用链的分析,可以实现对应用的性能监控、快速发现大规模分布式应用服务性能问题的根源,显著提高分布式应用的可用性。
目前,针对调用链实现追踪分析的开源***较多,比如jaeger、zikpin、elasticapm、pinpoint、skywalking,随着应用业务量的不断增长,链路数据也随之增多。全量采集方式会给监控服务带来计算和存储的压力,同时全量存储日常几乎不访问的调用链数据也是一种对存储资源的浪费,而采样是目前解决这类问题最快速且主流的方式。常见的方式包括头部连贯采样和尾部连贯采样两种。头部连贯采样基本思路是在入口服务收到请求时根据比例算法决定整条链路是否保留,命中异常和慢响应调用链的几率较低,而尾部连贯采样基本思路是缓存同一链路的所有Span数据,再对完整链路进行业务上的决策,比如根据请求结果状态码或者是否发生异常决定是否存储该调用链,需要存储一定时间的数据,消耗内存资源以及导致分析存在延迟,再如《一种链路追踪采样方法及***》,该专利提出先通过请求次序判断是否满足采样率条件,再通过采样特征判断是否满足采样率条件进行采样,本质上是传统头部与尾部采样的结合,先利用头部采样随机淘汰大部分调用链,再利用尾部采样方法针对淘汰的调用链进行决策,保留满足特征条件的调用链。该专利既未对头部采样命中异常和慢响应调用链的几率较低进行优化,也未对尾部采样的消耗内存资源和延迟问题进行优化。
针对上述问题本发明重点针对尾部连贯采样进行优化,采用基于拓展的并查集算法进行实时采样,缓解了分析节点的压力,并且可以提升服务器的性能和稳定性
发明内容
考虑到上述问题,提出了本发明。
根据本发明一方面,提出了一种基于并查集实时检测调用链连贯性的方法,该方法包括:
步骤S1:应用执行业务逻辑,agent生成Span数据;
步骤S2:agent标记Span是否叶子节点;
步骤S3:agent批量上传Span数据;
步骤S4:分析平台接收Span数据;
步骤S5:分析平台实时对Span进行连贯性检测;
步骤S6:分析平台实时对Span进行完整性检测;
步骤S7:分析平台执行调用链决策。
本发明还提出一种基于并查集实时检测调用链连贯性的装置,该装置包括:
生成模块:应用执行业务逻辑,agent生成Span数据;
标记模块:agent标记Span是否叶子节点;
上传模块:agent批量上传Span数据;
接收模块:分析平台接收Span数据;
检测模块1:分析平台实时对Span进行连贯性检测;
检测模块2:分析平台实时对Span进行完整性检测;
执行模块:分析平台执行调用链决策。
相对于现有技术,本申请具有如下有益效果:
本方案相对现有技术而言,既能做到实时精确检测调用链连贯性和完整性,同时还能显著降低内存资源消耗,提升分析统计性能。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1示出根据本发明一个实施例的基于并查集实时检测示例框图;
图2示出根据本发明一个实施例的可视化的调用链Span展示说明示意图;
图3示出根据本发明一个实施例的实时检测调用链连贯性主要流程示意图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
实施例一:
一般情况下一条完整的调用链数据是由各个***分别创建和单独上报,同时传统的Span规范只定义是否存在父节点Span,缺少是否存在子节点Span的定义,因此通过传统方式上报Span至服务平台时,因服务平台无法判断Span是否含有子节点,无法实时判断当前上报的Span的子Span是否已经上报,从而无法实时判断调用链是否完整。
为了解决上文所述的问题,提出了一种基于并查集实时检测调用链连贯性的方法、装置。具体的,本发明技术方案通过增加Span是否叶子节点isLeaf标识,用于判断此Span是否存在子Span,同时结合并查集算法快速判断目前上报的调用链是否满足连贯性和完整性,在每次应用上报Span时根据Span的ParentSpanId递归查找其根Span,检测服务平台的所有Span是否具有同一个根Span,若是同一根Span则说明当前服务平台的所有Span相互联通,满足连贯性检测,其次判断所有非叶子节点Span是否找到对应的子Span,当满足此条件才认为当前调用链满足完整性要求。
名词解析如下:
Trace:调用链,一次从用户发起请求到各个微服务间相互调用产生最终结果响应,在这个过程产生多个调用记录,这些调用记录的组合称为一条完整的调用链数据,其中多个调用记录通过同一个TraceId标识所属的调用链。
Span:调用记录,也称为跨度,记录了一个调用的信息,其中包含有TraceId、SpanId、ParentSpanId、调用服务名称、时间戳、输入输出参数、执行异常信息等,调用一般分为***内部调用和RPC***间调用。
***内部调用:通常是同一个线程内部的方法调用,这些方法通过ThreadLocal传递调用链的TraceId信息。
RPC***间调用:跨***的调用,常见的有Http、Dubbo方式,通过具体的协议传递TraceId信息。
本申请基于上述情况,提出一种基于并查集实时检测调用链连贯性的方法。
参见附图3具体的,根据本发明实施例的一种基于并查集实时检测调用链连贯性的方法、该方法包括:
步骤S1:应用执行业务逻辑,agent生成Span数据;
步骤S2:agent标记Span是否叶子节点;
步骤S3:agent批量上传Span数据;
步骤S4:分析平台接收Span数据;
步骤S5:分析平台实时对Span进行连贯性检测;
步骤S6:分析平台实时对Span进行完整性检测;
步骤S7:分析平台执行调用链决策。
作为示例性的,具体的方法如下:用户发起请求生成调用链数据结构如下:
当前Span 所属应用 父Span isLeaf状态
1 应用A 1 False
2 应用A 1 False
3 应用B 2 True
4 应用A 1 False
5 应用C 4 True
各应用上报Span时机无法确定,可能是(A、B、C),抑或(B、C、A),(C、B、A),(A、C、B)等等。
以上报顺序(A、B、C)为例,A先上报Span1、Span2、Span4数据至服务平台,服务平台利用并查集算法分析当前已上报的所有Span的可达根节点均为Span1,满足调用链连贯性要求:
节点 Span1 Span2 Span4
根节点 Span1 Span1 Span1
是否可达 True True True
利用isLeaf状态分析因Span2与Span4无法找到子Span,不满足完整性要求:
节点 Span1 Span2 Span4
是否叶子节点 False False False
存在子节点 True False False
服务平台接收B上报的Span后检测连贯性状态,满足连贯性要求,如下:
利用isLeaf状态检测完整性状态,因Span4无法找到子Span,不满足完整性要求:
服务平台接收C上报的Span后检测连贯性状态,满足连贯性要求,如下:
利用isLeaf状态检测完整性状态,满足完整性要求:
根据连贯性和完整性状态判断,服务平台实时检测当前调用链已上报所有Span数据,进而可以进行后续的采样决策分析。
本发明解决了尾部连贯采样的缺点,有效减少分析节点内存的消耗,降低分析的延时,提升平台服务的性能及稳定性。
实施例二:
本发明还提出一种基于并查集实时检测调用链连贯性的装置,该装置包括:
生成模块:应用执行业务逻辑,agent生成Span数据;
标记模块:agent标记Span是否叶子节点;
上传模块:agent批量上传Span数据;
接收模块:分析平台接收Span数据;
检测模块1:分析平台实时对Span进行连贯性检测;
检测模块2:分析平台实时对Span进行完整性检测;
执行模块:分析平台执行调用链决策。
作为示例性的,具体的装置执行如下方法:用户发起请求生成调用链数据结构如下:
当前Span 所属应用 父Span isLeaf状态
1 应用A 1 False
2 应用A 1 False
3 应用B 2 True
4 应用A 1 False
5 应用C 4 True
各应用上报Span时机无法确定,可能是(A、B、C),抑或(B、C、A),(C、B、A),(A、C、B)等等。
以上报顺序(A、B、C)为例,A先上报Span1、Span2、Span4数据至服务平台,服务平台利用并查集算法分析当前已上报的所有Span的可达根节点均为Span1,满足调用链连贯性要求:
节点 Span1 Span2 Span4
根节点 Span1 Span1 Span1
是否可达 True True True
利用isLeaf状态分析因Span2与Span4无法找到子Span,不满足完整性要求:
服务平台接收B上报的Span后检测连贯性状态,满足连贯性要求,如下:
节点 Span1 Span2 Span4 Span3
根节点 Span1 Span1 Span1 Span1
是否可达 True True True True
利用isLeaf状态检测完整性状态,因Span4无法找到子Span,不满足完整性要求:
服务平台接收C上报的Span后检测连贯性状态,满足连贯性要求,如下:
利用isLeaf状态检测完整性状态,满足完整性要求:
根据连贯性和完整性状态判断,服务平台实时检测当前调用链已上报所有Span数据,进而可以进行后续的采样决策分析。
本发明提出了基于并查集实时检测调用链连贯性的方法,实现了精确分析调用链完整性,同时提升了高并发场景分析统计性能,解决了尾部连贯采样的缺点,有效减少了分析节点内存的消耗,降低了分析的延时,提升了平台服务的性能及稳定性。
尽管本文已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的组件或步骤。位于组件之前的单词“一”或“一个”不排除存在多个这样的组件。本发明可以借助于包括有若干不同组件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

Claims (2)

1.一种基于并查集实时检测调用链连贯性的方法,该方法包括:
步骤S1:应用执行业务逻辑,agent生成Span数据;
步骤S2:agent标记Span是否叶子节点;
步骤S3:agent批量上传Span数据;
步骤S4:分析平台接收Span数据;
分析平台结合并查集算法对Span进行连贯性检测和完整性检测:
步骤S5:分析平台实时对Span进行连贯性检测,具体为在每次应用上报Span时根据Span的ParentSpanId递归查找其根Span,检测服务平台的所有Span是否具有同一个根Span,若是同一根Span则说明当前服务平台的所有Span相互联通,满足连贯性检测;
步骤S6:分析平台实时对Span进行完整性检测,具体为判断所有非叶子节点Span是否找到对应的子Span,当满足此条件才认为当前调用链满足完整性要求;步骤S7:分析平台执行调用链决策。
2.一种基于并查集实时检测调用链连贯性的装置,该装置包括:
生成模块:应用执行业务逻辑,agent生成Span数据;
标记模块:agent标记Span是否叶子节点;
上传模块:agent批量上传Span数据;
接收模块:分析平台接收Span数据;
检测模块1:分析平台实时对Span进行连贯性检测,具体为在每次应用上报Span时根据Span的ParentSpanId递归查找其根Span,检测服务平台的所有Span是否具有同一个根Span,若是同一根Span则说明当前服务平台的所有Span相互联通,满足连贯性检测;
检测模块2:分析平台实时对Span进行完整性检测,具体为判断所有非叶子节点Span是否找到对应的子Span,当满足此条件才认为当前调用链满足完整性要求;
执行模块:分析平台执行调用链决策。
CN202211692298.8A 2022-12-28 2022-12-28 一种基于并查集实时检测调用链连贯性的方法和装置 Active CN116016262B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211692298.8A CN116016262B (zh) 2022-12-28 2022-12-28 一种基于并查集实时检测调用链连贯性的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211692298.8A CN116016262B (zh) 2022-12-28 2022-12-28 一种基于并查集实时检测调用链连贯性的方法和装置

Publications (2)

Publication Number Publication Date
CN116016262A CN116016262A (zh) 2023-04-25
CN116016262B true CN116016262B (zh) 2024-05-24

Family

ID=86034895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211692298.8A Active CN116016262B (zh) 2022-12-28 2022-12-28 一种基于并查集实时检测调用链连贯性的方法和装置

Country Status (1)

Country Link
CN (1) CN116016262B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738414B1 (en) * 2010-12-31 2014-05-27 Ajay R. Nagar Method and system for handling program, project and asset scheduling management
CA2988957A1 (en) * 2015-06-09 2016-12-15 Ultrata Llc Infinite memory fabric hardware implementation with router
WO2017004858A1 (zh) * 2015-07-08 2017-01-12 重庆邮电大学 一种5g网络中基于用户标签的分流方法和***
CN106649055A (zh) * 2017-01-10 2017-05-10 山东浪潮云服务信息科技有限公司 一种基于国产cpu和操作***的软硬件故障告警***及方法
CN110069358A (zh) * 2019-04-18 2019-07-30 彩讯科技股份有限公司 调用链跟踪分析方法、装置、电子设备及存储介质
CN111478806A (zh) * 2020-04-02 2020-07-31 聚好看科技股份有限公司 一种链路追踪采样方法及***
WO2021242466A1 (en) * 2020-05-28 2021-12-02 Splunk, Inc. Computing performance analysis for spans in a microservices-based architecture
CN114078597A (zh) * 2020-07-29 2022-02-22 甲骨文国际公司 从文本获得支持的决策树用于医疗健康应用
CN114168421A (zh) * 2021-12-09 2022-03-11 上海甄云信息科技有限公司 基于微服务调用链的客户化代码兼容性分析***及方法
CN114721898A (zh) * 2022-03-16 2022-07-08 缀初网络技术(上海)有限公司 基于boosting算法的边缘云服务器利用率预测方法、预测装置及存储介质
CN115276226A (zh) * 2022-07-11 2022-11-01 广西电网有限责任公司 一种基于微服务技术的配电网运行监控指挥平台及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140168228A1 (en) * 2012-12-13 2014-06-19 Nvidia Corporation Fine-grained parallel traversal for ray tracing

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738414B1 (en) * 2010-12-31 2014-05-27 Ajay R. Nagar Method and system for handling program, project and asset scheduling management
CA2988957A1 (en) * 2015-06-09 2016-12-15 Ultrata Llc Infinite memory fabric hardware implementation with router
WO2017004858A1 (zh) * 2015-07-08 2017-01-12 重庆邮电大学 一种5g网络中基于用户标签的分流方法和***
CN106649055A (zh) * 2017-01-10 2017-05-10 山东浪潮云服务信息科技有限公司 一种基于国产cpu和操作***的软硬件故障告警***及方法
CN110069358A (zh) * 2019-04-18 2019-07-30 彩讯科技股份有限公司 调用链跟踪分析方法、装置、电子设备及存储介质
CN111478806A (zh) * 2020-04-02 2020-07-31 聚好看科技股份有限公司 一种链路追踪采样方法及***
WO2021242466A1 (en) * 2020-05-28 2021-12-02 Splunk, Inc. Computing performance analysis for spans in a microservices-based architecture
CN114078597A (zh) * 2020-07-29 2022-02-22 甲骨文国际公司 从文本获得支持的决策树用于医疗健康应用
CN114168421A (zh) * 2021-12-09 2022-03-11 上海甄云信息科技有限公司 基于微服务调用链的客户化代码兼容性分析***及方法
CN114721898A (zh) * 2022-03-16 2022-07-08 缀初网络技术(上海)有限公司 基于boosting算法的边缘云服务器利用率预测方法、预测装置及存储介质
CN115276226A (zh) * 2022-07-11 2022-11-01 广西电网有限责任公司 一种基于微服务技术的配电网运行监控指挥平台及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Compact Leakage-Free Support for Integrity and Reliability;M. Taassori et al.;《2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA)》;20200713;全文 *
层次化网关转发的agent迁移技术与应用;吴晓;马骏;陶先平;吕建;;南京大学学报(自然科学);20100330(02) *
邹丹丹 ; 丁建兵 ; 王希栋 ; 叶晓舟 ; 欧阳晔.基于微服务调用链双向搜索的故障根因定位方法.《通信技术》.2022,全文. *

Also Published As

Publication number Publication date
CN116016262A (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
CN111459766B (zh) 一种面向微服务***的调用链跟踪与分析方法
WO2021051945A1 (zh) 服务器性能监控方法、装置、计算机设备及存储介质
CN107729210B (zh) 分布式服务集群的异常诊断方法和装置
CN103176974B (zh) 优化数据库中访问路径的方法和装置
CN108322320B (zh) 业务生存性分析方法及装置
CN113454954A (zh) 社交数据流上的实时事件检测
TW201905733A (zh) 多源資料融合方法和裝置
CN110647447B (zh) 用于分布式***的异常实例检测方法、装置、设备和介质
CN101997709A (zh) 一种根告警数据分析的方法及其***
CN116166505B (zh) 金融行业双态it架构的监控平台、方法、存储介质及设备
JP2023534696A (ja) ネットワークトポロジーにおけるアノマリー検知
Zhang et al. A survey on quality assurance techniques for big data applications
CN115357418A (zh) 微服务故障检测方法、装置、存储介质及计算机设备
CN113242157B (zh) 一种分布式处理环境下的集中式数据质量监测方法
CN102437959B (zh) 基于双超时网络报文的组流方法
CN114564947A (zh) 轨道交通信号故障运维方法、装置及电子设备
CN116016262B (zh) 一种基于并查集实时检测调用链连贯性的方法和装置
CN110417621B (zh) 一种轻量级嵌入式***异常运行状态检测方法
CN114116811B (zh) 日志处理方法、装置、设备及存储介质
CN112579552A (zh) 日志存储及调用方法、装置及***
CN111813833B (zh) 一种实时二度通联关系数据挖掘的方法
CN115049493A (zh) 一种区块链数据追踪方法、装置及电子设备
CN115269519A (zh) 一种日志检测方法、装置及电子设备
CN107566193A (zh) 模糊故障Petri网及其网络故障诊断方法
CN114676047A (zh) 一种基于故障模式库的无人机软件安全性质分析验证方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant