CN116132499A - 调用链的压缩方法、装置、计算机设备及存储介质 - Google Patents
调用链的压缩方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116132499A CN116132499A CN202310144755.8A CN202310144755A CN116132499A CN 116132499 A CN116132499 A CN 116132499A CN 202310144755 A CN202310144755 A CN 202310144755A CN 116132499 A CN116132499 A CN 116132499A
- Authority
- CN
- China
- Prior art keywords
- event
- subsequence
- chain
- determining
- sequence
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Collating Specific Patterns (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
Abstract
本发明公开了一种调用链的压缩方法、装置、计算机设备及存储介质,涉及计算机应用技术。该方法包括:根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹;根据多个链路指纹确定多个工作链;根据多个工作链确定重复出现的事件子序列;配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记;将工作链中的事件子序列替换为子序列标识事件。在根据调用链得到链路指纹后,确定链路指纹包含的多个工作链,从多个工作链中确定重复出现的事件子序列,然后使用子序列标识事件替换重复出现的事件子序列,将多个事件组成的事件子序列压缩成一个子序列标识事件,实现对具有重复出现的事件子序列的工作链标记,进而降低调用链的数据量。
Description
技术领域
本发明实施例涉及计算机应用技术,尤其涉及一种调用链的压缩方法、装置、计算机设备及存储介质。
背景技术
随着信息化进程的发展,分布式跟踪系统得到业界广泛认可。分布式跟踪系统涉及调用链。调用链指在系统完成一次业务调用的过程中,将服务之间的调用信息(时间、接口、层次、结果)打点到日志中,然后将所有的打点数据连接为一个树状链条,即产生一个调用链。
然而,在大规模信息技术环境(又称IT环境)中,存在着数以万计,甚至百万计的主机、虚拟机或容器节点。换言之,每分钟IT环境中存在千万级甚至上亿级的调用数据在采集和传输中,调用链的数据爆炸式增长,造成存储成本过高,同时也不利于对调用链的查找和分析,故障发生时无法及时排障。如何降低调用链量成为亟待解决的问题。
发明内容
本发明提供一种调用链的压缩方法、装置、计算机设备及存储介质,以实现降低调用链量,提高调用链处理效率。
第一方面,本发明实施例提供了一种调用链的压缩方法,包括:
根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,所述链路指纹包括任务执行过程中触发的事件序列;
根据多个链路指纹确定多个工作链;
根据所述多个工作链确定重复出现的事件子序列;
配置所述事件子序列的子序列标识事件,为工作链配置子序列压缩标记;
将所述工作链中的事件子序列替换为所述子序列标识事件。
第二方面,本发明实施例还提供了一种调用链的压缩装置,包括:
一种调用链的压缩装置,其特征在于,包括:
链路指纹确定模块,用于根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,所述链路指纹包括任务执行过程中触发的事件序列;
工作链确定模块,用于根据多个链路指纹确定多个工作链;
子序列确定模块,用于根据所述多个工作链确定重复出现的事件子序列;
配置模块,用于配置所述事件子序列的子序列标识事件,为工作链配置子序列压缩标记;
替换模块,用于将所述工作链中的事件子序列替换为所述子序列标识事件。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例所示的调用链的压缩方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例所示的调用链的压缩方法。
本发明实施例提供的调用链的压缩方法,根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,所述链路指纹包括任务执行过程中触发的事件序列;根据多个链路指纹确定多个工作链;根据所述多个工作链确定重复出现的事件子序列;配置所述事件子序列的子序列标识事件,为工作链配置子序列压缩标记;将所述工作链中的事件子序列替换为所述子序列标识事件。在根据调用链得到链路指纹后,确定链路指纹包含的多个工作链,从多个工作链中确定重复出现的事件子序列,然后使用子序列标识事件替换重复出现的事件子序列,将多个事件组成的事件子序列压缩成一个子序列标识事件。通过为工作链配置子序列压缩标记,实现对具有重复出现的事件子序列的工作链标记,进而降低调用链的数据量。
附图说明
图1是本发明实施例一中的调用链的压缩方法的流程图;
图2是本发明实施例二中的调用链的压缩方法的流程图;
图3是本发明实施例三中的调用链的压缩方法的流程图;
图4是本发明实施例四中的调用链的压缩方法的流程图;
图5是本发明实施例五中的调用链的压缩方法的流程图;
图6是本发明实施例六中的调用链的压缩方法的流程图;
图7是本发明实施例七中的调用链的压缩装置的结构示意图;
图8是本发明实施例八中的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
随着信息化进程的飞速发展,计算机系统已经成为现代企业的一部分。近年来各行业信息化建设不断完善,业务的操作也越来越集中于信息系统或信息平台。为解决云化技术带来的挑战,第一个分布式跟踪系统(调用链)Dapper最早由Google设计而出,随后被业界各大公司推崇发展至今,产生了一系列实现实体,分布式跟踪业界标准也应运而生。调用链指在系统完成一次业务调用的过程中,将服务之间的调用信息(时间、接口、层次、结果)打点到日志中,然后将所有的打点数据连接为一个树状链条,即产生一个调用链。
跟踪系统将过程中产生的日志信息进行分析处理,将业务端到端的完整执行调用过程进行还原,从而可以根据不同维度进行统计分析;标识出有异常的服务调用,快速分析定位到出异常的服务;同时可根据数据统计分析系统性能瓶颈等等。
在大规模IT环境中,存在着数以万计,甚至百万计的主机、虚拟机或容器节点。这意味着每分钟,IT环境中都有千万级甚至上亿级的调用数据在采集和传输中,调用链的数据爆炸式增长,造成存储成本过高,同时也不利于对调用链数据的查找和分析,故障发生时无法及时排障。如何降低调用链量成为亟待解决的问题。
实施例一
图1为本发明实施例一提供的调用链的压缩方法的流程图,本实施例可适用于对分布式跟踪系统的调用链进行压缩的情况,该方法可以由计算机设备来执行,具体包括如下步骤:
步骤110、根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹。
其中,链路指纹包括任务执行过程中触发的事件序列。获取调用链日志,调用链日志中通过引号记载数据内容,通过冒号链接字段与字段值,通过逗号分隔不同的字段。将调用链日志格式化为动态内容和静态内容,动态内容为字段值,静态内容为字段名。
在对字段进行转换后,得到事件集合。获取事件集合中的跟踪信息(TraceId)以及跟踪信息下的跨度信息(SpanId)。根据跟踪信息下全部跨度信息的父子关系,确定跟踪信息下的事件序列作为链路指纹。可以为每个任务建立一个跟踪信息,链路指纹与任务一一对应。示例性的,如表1所示,四个任务对应四个链路指纹。
表1
步骤120、根据多个链路指纹确定多个工作链。
如果链路指纹中事件的时间间隔超出预设时间间隔,则可以将链路指纹分割为多个工作链,每个工作链中的事件的时间间隔小于预设时间间隔。工作链保留指纹练路中事件发生序列,删除事件执行的时间信息。工作链为多个事件组成的事件组合。
如果链路指纹中事件的时间间隔未超出预设时间间隔,则根据链路指纹包含的全部事件确定工作链。
示例性的,假设预设时间间隔为10个单位时间,表1中任务T1的链路指纹中,(E2,2)和(E1,16)的时间间隔为14,大于预设时间间隔,因此可以将T1的链路指纹分为两个工作链。得到的工作链如表2所示。
表2
步骤130、根据多个工作链确定重复出现的事件子序列。
依次便利每个工作链,判断工作链中事件子序列是否在其他工作链中存在,且该事件子序列中事件上下文唯一。如果存在,则确定该事件子序列为重复出现的事件子序列。
示例性的,在上述示例中存在E1,E2以及E1,E3的事件组合,因此E1,E2以及E1,E3的事件上下文不唯一。即使E1,E3在多个工作链中出现,但E1,E3的事件组合不能作为重复出现的事件子序列。
在上述示例中,E4,E5,E2的事件组合,在工作链W2和工作链W3中重复出现,且E4,E5,E2该事件组合的事件上下文唯一,因此将E4,E5,E2确定为重复出现的事件子序列。
步骤140、配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记。
可以使用一个子序列标识事件表示一个事件子序列,可以使用事件子序列中的任意一个事件作为子序列标识事件。工作链可能包括一个或多个事件子序列,可以通过子序列压缩标记对事件子序列标记,以便区分不同的事件子序列。建立工作链与子序列压缩标记的映射关系。
可选的,配置事件子序列的子序列标识事件,可实施为:
将事件子序列的首个事件配置为子序列标识事件。
为了提高压缩和解压缩效率,可以将事件子序列的首个事件配置为子序列标识事件。示例性的,上述示例中事件子序列E4,E5,E2,可以将E4配置为子序列标识事件。
步骤150、将工作链中的事件子序列替换为子序列标识事件。
在配置子序列标识事件后,将工作链中事件子序列替换为子序列标识事件,进而将由多个事件组成的事件子序列替换为子序列标识事件。由调用链得到的工作链数量庞大,对于工作链中重复出现的事件子序列均使用子序列标识事件代替,能够大幅降低调用链的数据量。
本发明实施例提供的调用链的压缩方法,根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,链路指纹包括任务执行过程中触发的事件序列;根据多个链路指纹确定多个工作链;根据多个工作链确定重复出现的事件子序列;配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记;将工作链中的事件子序列替换为子序列标识事件。在根据调用链得到链路指纹后,确定链路指纹包含的多个工作链,从多个工作链中确定重复出现的事件子序列,然后使用子序列标识事件替换重复出现的事件子序列,将多个事件组成的事件子序列压缩成一个子序列标识事件。通过为工作链配置子序列压缩标记,实现对具有重复出现的事件子序列的工作链标记,进而降低调用链的数据量。
实施例二
图2为本发明实施例提供的调用链的压缩方法的流程图,作为对上述实施例的进一步说明,在根据多个工作链确定重复出现的事件子序列之前,还包括:判断工作链中是否存在连续重复的事件;若存在,对连续重复的事件进行去重。
上述方法包括:
步骤210、根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹。
其中,链路指纹包括任务执行过程中触发的事件序列。
步骤220、根据多个链路指纹确定多个工作链。
步骤230、判断工作链中是否存在连续重复的事件。
遍历每个工作链判断相邻的两个事件是否相同,如果相同则确定存在连续重复的事件。
示例性的,如表2所示,工作链W3和W4中存在E3,E3的连续重复的事件。
步骤240、若存在,对连续重复的事件进行去重。
若存在连续重复的事件,则删除重复的事件,仅保留一个事件,并返回执行步骤230,直至工作链中不存在连续重复的事件。
示例性的,E3,E3为连续重复的事件,则删除一个E3,保留一个E3,完成去重。
步骤250、根据多个工作链确定重复出现的事件子序列。
步骤260、配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记。
步骤270、将工作链中的事件子序列替换为子序列标识事件。
本发明实施例提供的调用链的压缩方法,能够对工作链中存在连续重复事件的情况进行去重,进一步简化工作链,使工作链内容更加简洁准确,避免连续重复时间影响调用链的展示和分析。进行去重后,调用链更加轻量,进一步减少调用链数据量。
实施例三
图3为本发明实施例提供的调用链的压缩方法的流程图,作为对上述实施例的进一步说明,根据多个工作链确定重复出现的事件子序列,包括:根据n-gram模型确定多个工作链中事件组合的相似度;根据相似度确定重复出现的事件子序列。上述方法包括:
步骤310、根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹。
其中,链路指纹包括任务执行过程中触发的事件序列。
步骤320、根据多个链路指纹确定多个工作链。
步骤330、根据n-gram模型确定多个工作链中事件组合的相似度。
n-gram模型采用下述公式计算事件组合出现的概率:
其中,(E1…En)表示工作链中的事件组合,n表示事件长度,*表示任何事件的通配符。
步骤340、根据相似度确定重复出现的事件子序列。
如果条件概率满足:
p(En|E1...En-1)=1,p(En-1|E1...En-1)=1,...,p(E2|E1)=1
则表示从第二件事件到第n件事件都满足100%概率,即说明Ee1到En的事件组合上下文一致,且重复出现。
示例性的,如表2所示,p(E2|E4,E5)=1和p(E5|E4)=1,可见,E4、E5、E2为事件子序列。
步骤350、配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记。
步骤360、将工作链中的事件子序列替换为子序列标识事件。
本发明实施例提供的调用链的压缩方法,能够结合n-gram模型遍历工作链中存在的事件组合。当事件组合满足n-gram模型概率需求时,确定重复出现的事件子序列,提高重复出现的事件子序列的准确性,进而更加准确的对工作链进行压缩,提高压缩效率。
实施例四
图4为本发明实施例提供的调用链的压缩方法的流程图,作为对上述实施例的进一步说明,根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,包括:对调用链进行格式化,得到关键字-键值格式的第一数据;按照时间顺序从第一数据得到原始日志,原始日志包括按照时间顺序排序的任务信息;根据原始日志确定每个任务对应的事件集合;根据事件集合中的跟踪信息和跨度信息确定事件集合中事件之间的父子关系;根据父子关系确定任务对应的链路指纹。上述方法包括:
步骤410、对调用链进行格式化,得到关键字-键值格式的第一数据。
关键字为静态内容,字段值为动态内容。通过对冒号、逗号等符号的识别,将调用链进行格式化,得到第一数据。示例性的,调用链日志包括如下片段"spanId":"ABC","service.type":"service",其中,“spanId”为静态内容,“ABC”为动态内容“spanId”的静态内容。同理,“service.type”为静态内容,“service”为动态内容“service.type”的静态内容。进行格式转化后得到两个字段,分别为spanId:ABC和service.type:service。
步骤420、按照时间顺序从第一数据得到原始日志,原始日志包括按照时间顺序排序的任务信息。
原始日志按照时间顺序排列任务信息,任务信息包括事件执行的时间、事件名称以及事件所属任务。
步骤430、根据原始日志确定每个任务对应的事件集合。
统计每个任务包含的多个事件。
步骤440、根据事件集合中的跟踪信息和跨度信息确定事件集合中事件之间的父子关系。
对于任意一个事件,日志中记录由事件被调用的记录,通过调用记录可以确定事件之间的父子关系。
步骤450、根据父子关系确定任务对应的链路指纹。
可选的,可以通过下述方式确定链路指纹,其中Span表示跨度,Trace表示跟踪:
1)由用户根据日志内容,事先设置Span日志转Span的规则,如填写对应字段信息,
2)收取同一Trace下的所有Span关联日志;
3)将每条Span日志按照给定的规则转成Span,其中关键内容包括其本身的SpanId以及其父Span的SpanId即ParentId,同时构建SpanId->Span的映射,去除重复的Span;
4)遍历所有的Span,通过每个SpanId的ParentId,将Span进行划分,对于SpanId不在ParentId集中的Span即可划分为叶子节点;
5)从叶子节点开始,根据其ParentId在所有的Span中找到其父节点,构成从叶子节点到其父节点的短链,再通过父节点的ParentId找到下一个Span来补充链路,直到父节点不存在,即可认为最后一个Span为根节点,从而构建了一个从根Span到叶子Span的调用链;
6)从根Span开始遍历调用链,对于非根Span,用其父Span中的数据来补全自身,在完成调用链的遍历后即完成了残缺数据的补全。
步骤460、根据多个链路指纹确定多个工作链,根据多个工作链确定重复出现的事件子序列。
步骤470、配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记。
步骤480、将工作链中的事件子序列替换为子序列标识事件。
本发明实施例提供的调用链的压缩方法,能够根据调用链数据进行格式化得到第一数据,从第一数据中根据时间顺序得到原始日志,从原始日志中获取每个任务对应的事件集合,基于事件集合中事件之间的调用父子关系得到链路指纹,实现更加准确的得到链路指纹,提高链路指纹的可靠性。
实施例五
图5为本发明实施例提供的调用链的压缩方法的流程图,作为对上述实施例的进一步说明,在将工作链中的事件子序列替换为子序列标识事件之后,还包括:当输出链路数据时,若显示压缩后的工作链,显示子序列压缩标记;若接收到用户触发的展开操作,根据子序列压缩标记确定事件子序列;输出事件子序列与工作链中的子序列标识事件的压缩关系。上述方法包括:
步骤510、根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹。
其中,链路指纹包括任务执行过程中触发的事件序列。
步骤520、根据多个链路指纹确定多个工作链。
步骤530、根据多个工作链确定重复出现的事件子序列。
步骤540、配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记。
步骤550、将工作链中的事件子序列替换为子序列标识事件。
步骤560、当输出链路数据时,若显示压缩后的工作链,显示子序列压缩标记。
步骤570、若接收到用户触发的展开操作,根据子序列压缩标记确定事件子序列。
步骤580、输出事件子序列与工作链中的子序列标识事件的压缩关系。
本发明实施例提供的调用链的压缩方法,能够在调用链输出界面显示工作链时,优先输出压缩后的工作链,并在工作链中区别显示子序列标识事件,用户触针对子序列标识事件发展开操作后,显示子序列压缩标记确定事件子序列,为用户展示完整的工作链。实现多层级显示,提高易用性。
实施例六
图6为本发明实施例提供的调用链的压缩方法的流程图,作为对上述实施例的进一步说明,在将工作链中的事件子序列替换为子序列标识事件之后,还包括:根据子序列压缩标记将子序列标识事件替换为事件子序列,得到完整的工作链。上述方法包括:
步骤610、根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹。
其中,链路指纹包括任务执行过程中触发的事件序列。
步骤620、根据多个链路指纹确定多个工作链。
步骤630、根据多个工作链确定重复出现的事件子序列。
步骤640、配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记。
步骤650、将工作链中的事件子序列替换为子序列标识事件。
步骤660、根据子序列压缩标记将子序列标识事件替换为事件子序列,得到完整的工作链。
本发明实施例提供的调用链的压缩方法,能够调用链解压过程中,根据子序列压缩标记将子序列标识事件替换为事件子序列,得到完整的工作链,实现对压缩后数据的解压,为后续调用链分析等处理提供完整数据。通过子序列压缩标记能够还原出事件子序列,进而在对调用链进行分析及展示的过程中,根据子序列压缩标记将子序列标识事件替换为事件子序列,实现调用链的还原。
实施例七
图7为本发明实施例五提供的调用链的压缩装置的结构示意图,本实施例可适用于对分布式跟踪系统的调用链进行压缩的情况,该装置可以由计算机设备来执行,具体包括:链路指纹确定模块71、工作链确定模块72、子序列确定模块73、配置模块74以及替换模块75。
链路指纹确定模块71,用于根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,链路指纹包括任务执行过程中触发的事件序列;
工作链确定模块72,用于根据多个链路指纹确定多个工作链;
子序列确定模块73,用于根据多个工作链确定重复出现的事件子序列;
配置模块74,用于配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记;
替换模块75,用于将工作链中的事件子序列替换为子序列标识事件。
在上述实施方式的基础上,如图8所示,还包括去重模块,去重模块用于:
判断工作链中是否存在连续重复的事件;
若存在,对连续重复的事件进行去重。
在上述实施方式的基础上,子序列确定模块73用于:
根据n-gram模型确定多个工作链中事件组合的相似度;
根据相似度确定重复出现的事件子序列。
在上述实施方式的基础上,链路指纹确定模块71用于:
对调用链进行格式化,得到关键字-键值格式的第一数据;
按照时间顺序从第一数据得到原始日志,原始日志包括按照时间顺序排序的任务信息;
根据原始日志确定每个任务对应的事件集合;
根据事件集合中的跟踪信息和跨度信息确定事件集合中事件之间的父子关系;
根据父子关系确定任务对应的链路指纹。
在上述实施方式的基础上,配置模块74用于:
将事件子序列的首个事件配置为子序列标识事件。
在上述实施方式的基础上,还包括显示模块,显示模块用于:
当输出链路数据时,若显示压缩后的工作链,显示子序列压缩标记;
若接收到用户触发的展开操作,根据子序列压缩标记确定事件子序列;
输出事件子序列与工作链中的子序列标识事件的压缩关系。
在上述实施方式的基础上,还包括解压模块,解压模块用于:
根据子序列压缩标记将子序列标识事件替换为事件子序列,得到完整的工作链。
本发明实施例提供的调用链的压缩装置,链路指纹确定模块71,用于根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,链路指纹包括任务执行过程中触发的事件序列;工作链确定模块72,用于根据多个链路指纹确定多个工作链;子序列确定模块73,用于根据多个工作链确定重复出现的事件子序列;配置模块74,用于配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记;替换模块75,用于将工作链中的事件子序列替换为子序列标识事件。在根据调用链得到链路指纹后,确定链路指纹包含的多个工作链,从多个工作链中确定重复出现的事件子序列,然后使用子序列标识事件替换重复出现的事件子序列,将多个事件组成的事件子序列压缩成一个子序列标识事件。通过为工作链配置子序列压缩标记,实现对具有重复出现的事件子序列的工作链标记,进而降低调用链的数据量。
本发明实施例所提供的调用链的压缩装置可执行本发明任意实施例所提供的调用链的压缩方法,具备执行方法相应的功能模块和有益效果。
实施例八
图8为本发明实施例八提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括处理器80、存储器81、输入装置82和输出装置83;计算机设备中处理器80的数量可以是一个或多个,图8中以一个处理器80为例;计算机设备中的处理器80、存储器81、输入装置82和输出装置83可以通过总线或其他方式连接,图8中以通过总线连接为例。
存储器81作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的调用链的压缩方法对应的程序指令/模块(例如,调用链的压缩装置中的链路指纹确定模块71、工作链确定模块72、子序列确定模块73、配置模块74以及替换模块75)。处理器80通过运行存储在存储器81中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的调用链的压缩方法。
存储器81可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器81可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器81可进一步包括相对于处理器80远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置82可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置83可包括显示屏等显示设备。
实施例九
本发明实施例九还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种调用链的压缩方法,该方法包括:
根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,链路指纹包括任务执行过程中触发的事件序列;
根据多个链路指纹确定多个工作链;
根据多个工作链确定重复出现的事件子序列;
配置事件子序列的子序列标识事件,为工作链配置子序列压缩标记;
将工作链中的事件子序列替换为子序列标识事件。
在上述实施方式的基础上,在根据多个工作链确定重复出现的事件子序列之前,还包括:
判断工作链中是否存在连续重复的事件;
若存在,对连续重复的事件进行去重。
在上述实施方式的基础上,根据多个工作链确定重复出现的事件子序列,包括:
根据n-gram模型确定多个工作链中事件组合的相似度;
根据相似度确定重复出现的事件子序列。
在上述实施方式的基础上,根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,包括:
对调用链进行格式化,得到关键字-键值格式的第一数据;
按照时间顺序从第一数据得到原始日志,原始日志包括按照时间顺序排序的任务信息;
根据原始日志确定每个任务对应的事件集合;
根据事件集合中的跟踪信息和跨度信息确定事件集合中事件之间的父子关系;
根据父子关系确定任务对应的链路指纹。
在上述实施方式的基础上,配置事件子序列的子序列标识事件,包括:
将事件子序列的首个事件配置为子序列标识事件。
在上述实施方式的基础上,在将工作链中的事件子序列替换为子序列标识事件之后,还包括:
当输出链路数据时,若显示压缩后的工作链,显示子序列压缩标记;
若接收到用户触发的展开操作,根据子序列压缩标记确定事件子序列;
输出事件子序列与工作链中的子序列标识事件的压缩关系。
在上述实施方式的基础上,在将工作链中的事件子序列替换为子序列标识事件之后,还包括:
根据子序列压缩标记将子序列标识事件替换为事件子序列,得到完整的工作链。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的调用链的压缩方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述调用链的压缩装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种调用链的压缩方法,其特征在于,包括:
根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,所述链路指纹包括任务执行过程中触发的事件序列;
根据多个链路指纹确定多个工作链;
根据所述多个工作链确定重复出现的事件子序列;
配置所述事件子序列的子序列标识事件,为工作链配置子序列压缩标记;
将所述工作链中的事件子序列替换为所述子序列标识事件。
2.根据权利要求1所述的方法,其特征在于,在根据所述多个工作链确定重复出现的事件子序列之前,还包括:
判断工作链中是否存在连续重复的事件;
若存在,对所述连续重复的事件进行去重。
3.根据权利要求1所述的方法,其特征在于,所述根据所述多个工作链确定重复出现的事件子序列,包括:
根据n-gram模型确定所述多个工作链中事件组合的相似度;
根据所述相似度确定重复出现的事件子序列。
4.根据权利要求1所述的方法,其特征在于,所述根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,包括:
对调用链进行格式化,得到关键字-键值格式的第一数据;
按照时间顺序从所述第一数据得到原始日志,所述原始日志包括按照时间顺序排序的任务信息;
根据所述原始日志确定每个任务对应的事件集合;
根据所述事件集合中的跟踪信息和跨度信息确定所述事件集合中事件之间的父子关系;
根据所述父子关系确定任务对应的链路指纹。
5.根据权利要求1所述的方法,其特征在于,所述配置所述事件子序列的子序列标识事件,包括:
将事件子序列的首个事件配置为子序列标识事件。
6.根据权利要求1所述的方法,其特征在于,在将所述工作链中的事件子序列替换为所述子序列标识事件之后,还包括:
当输出链路数据时,若显示压缩后的工作链,显示子序列压缩标记;
若接收到用户触发的展开操作,根据子序列压缩标记确定事件子序列;
输出所述事件子序列与所述工作链中的子序列标识事件的压缩关系。
7.根据权利要求1所述的方法,其特征在于,在将所述工作链中的事件子序列替换为所述子序列标识事件之后,还包括:
根据所述子序列压缩标记将所述子序列标识事件替换为所述事件子序列,得到完整的工作链。
8.一种调用链的压缩装置,其特征在于,包括:
链路指纹确定模块,用于根据调用链中的跟踪信息和跨度信息确定任务对应的链路指纹,所述链路指纹包括任务执行过程中触发的事件序列;
工作链确定模块,用于根据多个链路指纹确定多个工作链;
子序列确定模块,用于根据所述多个工作链确定重复出现的事件子序列;
配置模块,用于配置所述事件子序列的子序列标识事件,为工作链配置子序列压缩标记;
替换模块,用于将所述工作链中的事件子序列替换为所述子序列标识事件。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310144755.8A CN116132499B (zh) | 2023-02-10 | 2023-02-10 | 调用链的压缩方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310144755.8A CN116132499B (zh) | 2023-02-10 | 2023-02-10 | 调用链的压缩方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116132499A true CN116132499A (zh) | 2023-05-16 |
CN116132499B CN116132499B (zh) | 2023-09-26 |
Family
ID=86311619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310144755.8A Active CN116132499B (zh) | 2023-02-10 | 2023-02-10 | 调用链的压缩方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116132499B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406929A (zh) * | 2023-11-09 | 2024-01-16 | 北京大学 | 一种无损的调用链压缩还原方法与系统 |
CN118394597A (zh) * | 2024-04-28 | 2024-07-26 | 北京优特捷信息技术有限公司 | 调用链日志下指标数据异常检测方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100017791A1 (en) * | 2008-07-17 | 2010-01-21 | Ulrich Alfons Finkler | Probabilistic framework for the highly efficient correlation of call chains with hardware events |
US20100242055A1 (en) * | 2009-03-17 | 2010-09-23 | Microsoft Corporation | Remote procedure call chains |
CN104917591A (zh) * | 2015-06-11 | 2015-09-16 | 中国电子科技集团公司第五十四研究所 | 一种适用于单向有损链路的卫星网络数据包压缩方法 |
US20180309637A1 (en) * | 2017-04-25 | 2018-10-25 | Nutanix, Inc. | Systems and methods for networked microservice modeling and visualization |
CN111414567A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置 |
CN114329529A (zh) * | 2021-12-20 | 2022-04-12 | 中元众诚(北京)科技有限公司 | 一种基于区块链的资产数据管理方法及系统 |
CN115017218A (zh) * | 2022-06-17 | 2022-09-06 | 中国电信股份有限公司 | 分布式调用链的处理方法及装置、存储介质、电子设备 |
-
2023
- 2023-02-10 CN CN202310144755.8A patent/CN116132499B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100017791A1 (en) * | 2008-07-17 | 2010-01-21 | Ulrich Alfons Finkler | Probabilistic framework for the highly efficient correlation of call chains with hardware events |
US20100242055A1 (en) * | 2009-03-17 | 2010-09-23 | Microsoft Corporation | Remote procedure call chains |
CN104917591A (zh) * | 2015-06-11 | 2015-09-16 | 中国电子科技集团公司第五十四研究所 | 一种适用于单向有损链路的卫星网络数据包压缩方法 |
US20180309637A1 (en) * | 2017-04-25 | 2018-10-25 | Nutanix, Inc. | Systems and methods for networked microservice modeling and visualization |
CN111414567A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置 |
CN114329529A (zh) * | 2021-12-20 | 2022-04-12 | 中元众诚(北京)科技有限公司 | 一种基于区块链的资产数据管理方法及系统 |
CN115017218A (zh) * | 2022-06-17 | 2022-09-06 | 中国电信股份有限公司 | 分布式调用链的处理方法及装置、存储介质、电子设备 |
Non-Patent Citations (2)
Title |
---|
李超逸: "微服务性能异常检测与根因定位", 中国优秀硕士学位论文全文数据库信息科技辑, no. 1, pages 138 - 459 * |
邹丹丹 等: "基于微服务调用链双向搜索的故障根因定位方法", 通信技术, vol. 55, no. 11, pages 1515 - 1522 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406929A (zh) * | 2023-11-09 | 2024-01-16 | 北京大学 | 一种无损的调用链压缩还原方法与系统 |
CN117406929B (zh) * | 2023-11-09 | 2024-06-07 | 北京大学 | 一种无损的调用链压缩还原方法与系统 |
CN118394597A (zh) * | 2024-04-28 | 2024-07-26 | 北京优特捷信息技术有限公司 | 调用链日志下指标数据异常检测方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116132499B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034993B (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
CN116132499B (zh) | 调用链的压缩方法、装置、计算机设备及存储介质 | |
CN111488363B (zh) | 数据处理方法、装置、电子设备及介质 | |
US20180137134A1 (en) | Data snapshot acquisition method and system | |
CN108268485B (zh) | 一种日志实时分析方法及系统 | |
CN112632960B (zh) | 基于动态字段模板的日志解析方法及系统 | |
CN110781246A (zh) | 一种企业关联关系构建方法及系统 | |
CN111563041B (zh) | 一种测试用例按需精准执行方法 | |
CN111625545B (zh) | 数据融合方法、数据融合装置及存储介质 | |
CN109992476B (zh) | 一种日志的分析方法、服务器及存储介质 | |
CN110489317B (zh) | 基于工作流的云系统任务运行故障诊断方法与系统 | |
CN110928851A (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
CN112926299B (zh) | 一种文本比对方法、合同审阅方法、审核系统 | |
US20070078865A1 (en) | Apparatus, system, and method for analyzing computer events recorded in a plurality of chronicle datasets | |
CN114385188A (zh) | 一种代码工作量统计方法、装置和电子设备 | |
CN113434607A (zh) | 基于图数据的行为分析方法、装置、电子设备和存储介质 | |
CN113138906A (zh) | 一种调用链数据采集方法、装置、设备及存储介质 | |
CN115543951B (zh) | 一种基于起源图的日志采集、压缩、存储方法 | |
CN114168624B (zh) | 数据分析方法、计算设备及存储介质 | |
CN110825784B (zh) | 一种低效业务过程的检测方法及装置 | |
CN114090673A (zh) | 一种多数据源的数据处理方法、设备及存储介质 | |
CN109992475B (zh) | 一种日志的处理方法、服务器及存储介质 | |
CN113239003A (zh) | 消息的自动提示方法、系统、设备及介质 | |
JP2016126532A (ja) | 算出プログラム、情報処理装置、および算出方法 | |
CN113342861B (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 |