CN116820826B - 一种基于调用链的根因定位方法、装置、设备及存储介质 - Google Patents
一种基于调用链的根因定位方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116820826B CN116820826B CN202311083879.6A CN202311083879A CN116820826B CN 116820826 B CN116820826 B CN 116820826B CN 202311083879 A CN202311083879 A CN 202311083879A CN 116820826 B CN116820826 B CN 116820826B
- Authority
- CN
- China
- Prior art keywords
- call chain
- root cause
- root
- abnormal
- transaction code
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000002159 abnormal effect Effects 0.000 claims abstract description 129
- 230000004044 response Effects 0.000 claims abstract description 66
- 238000010586 diagram Methods 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 230000004807 localization Effects 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 230000005856 abnormality Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000005070 sampling Methods 0.000 description 8
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 7
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000011451 sequencing strategy Methods 0.000 description 4
- 230000004931 aggregating effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 206010033799 Paralysis Diseases 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种基于调用链的根因定位方法、装置、设备及存储介质。该方法包括:获取告警前经过告警业务的调用链,所述调用链包括所述告警业务在内的至少两个节点;基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点;根据各根因节点对应的交易码,确定根因交易码,所述根因节点通过根因排序策略从所述异常节点中确定;获取与所述根因交易码对应根源系统业务存在调用关系的系统业务,并根据所述根源系统业务和所述调用关系生成所述告警业务根因定位的调用链路图。本发明实施例可以高效准确地对故障告警进行根因定位,适用于业务交易场景下的海量服务节点和庞大的调用链数据规模。
Description
技术领域
本发明涉及故障处理技术领域,尤其涉及一种基于调用链的根因定位方法、装置、设备及存储介质。
背景技术
由于微服务架构在灵活性、可扩展性、通用性等多方面具有极大优势,越来越多的企业趋向于将微服务架构运用到系统业务上。一个用户请求需要众多服务通过调用的方式共同实现,当系统发生故障时,真正有故障的服务和与它相关的服务,都会出现指标异常并且发出告警。大量的告警让运维人员无法确定哪个服务才是故障根因,只能逐个服务去检查,排除掉那些本身并没有异常的服务,这不仅效率低下,而且人工成本高。
目前出现了许多聚焦于自动化的故障根因服务定位的方法,这些方法的基本思想是利用调用信息推断故障的传播。实现这类算法主要面临着三大挑战。
首先,服务之间的依赖关系非常复杂,难以分析故障在服务之间的传递。其次,基于服务的系统往往更新迭代频率较高。最后,系统中存在大量的服务,当服务请求高时,系统会产生海量的调用链数据,从中快速找到异常调用链信息并且定位故障十分困难。
发明内容
本发明提供了一种基于调用链的根因定位方法、装置、设备及存储介质,以高效准确地对故障告警进行根因定位,适用于业务交易场景下的海量服务节点和庞大的调用链数据规模。
根据本发明的一方面,提供了一种基于调用链的根因定位方法,包括:
获取告警前经过告警业务的调用链,所述调用链包括所述告警业务在内的至少两个节点;
基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点;
根据各根因节点对应的交易码,确定根因交易码,所述根因节点通过根因排序策略从所述异常节点中确定;
获取与所述根因交易码对应根源系统业务存在调用关系的系统业务,并根据所述根源系统业务和所述调用关系生成所述告警业务根因定位的调用链路图。
根据本发明的另一方面,提供了一种基于调用链的根因定位装置,包括:
调用链获取模块,用于获取告警前经过告警业务的调用链,所述调用链包括所述告警业务在内的至少两个节点;
异常节点确定模块,用于基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点;
根因交易码确定模块,用于根据各根因节点对应的交易码,确定根因交易码,所述根因节点通过根因排序策略从所述异常节点中确定;
调用链路图生成模块,用于获取与所述根因交易码对应根源系统业务存在调用关系的系统业务,并根据所述根源系统业务和所述调用关系生成所述告警业务根因定位的调用链路图。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的基于调用链的根因定位方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的基于调用链的根因定位方法。
本发明实施例在多个关键问题上结合多种方案取长补短,考虑多种判断异常的标准和不同的根因排序策略,具有更好的扩展性,能覆盖更多异常传播情况,更适合真实运维环境;同时,通过分析业务性能黄金指标数据-响应时间,针对潜在的问题及时反馈并处理,算法效率较高,能更好地适应业务交易场景下的海量服务节点和庞大的调用链数据规模,避免系统间因相互调用而出现大面积瘫痪的故障。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是根据本发明一实施例提供的一种基于调用链的根因定位方法的流程图;
图1B是根据本发明一实施例提供的一种正态分布合理范围的示意图;
图1C是根据本发明一实施例提供的一种调用链路图的示意图;
图2A是根据本发明又一实施例提供的一种基于调用链的根因定位方法的流程图;
图2B是根据本发明又一实施例提供的一种基于调用链数据的根因定位算法的流程示意图;
图3是根据本发明又一实施例提供的一种基于调用链的根因定位装置的结构示意图;
图4是实现本发明实施例的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在描述本发明实施例之前,先对背景技术部分描述的现有故障根因服务定位方法进行简单扩展,以进一步明确本申请的保护范围和创造性所在:
MEPFL(Microservice Error Prediction and Fault Localization),是一种通过学习调用链日志来预测微服务系统潜在异常和定位故障的算法。通过在微服务和调用链级别使用随机森林、KNN、MLP等机器学习技术训练预测模型,MEPFL重点对多实例故障、配置故障、异步交互故障这三种常见的故障进行预测和定位。
MicroHECL主要针对性能异常、可靠性异常和流量异常这三种异常类型,定位导致该问题的根源服务。MicroHECL动态地构造目标微服务系统的服务调用图,并基于服务依赖关系图游走,根据候选根因服务和初始异常服务之间的指标相似度进行根因排序。
MicroRank同时考虑正常调用链和异常调用链,基于扩展频谱分析来识别微服务系统中的延迟问题,并定位造成延迟的根本原因。在区分出异常调用链之后,PageRank评分器模块把正常和异常调用链作为其输入,并区分不同调用链对扩展频谱技术的重要性。最后,基于来自PageRank评分器的加权频谱信息排序。
上述现有根因定位算法方案,都存在着如下问题:
数据依赖:大部分方案基于良好的数据质量和小规模实验环境,未考虑海量数据、数据采集不全等问题对算法的影响;
场景单一:只覆盖了响应时间的异常和节点级别的异常,很多方案没有有效利用调用链信息,排序方法不够全面;
落地困难:对定位结果的可解释考虑不够充分,部分方案运行复杂度和配置成本较高,算法泛化性考虑不够;
迁移成本:不一定符合实际运维排障流程,场景迁移需要较大的探索成本。
针对以上问题,本发明提供了一个在多个关键问题上,结合多种方案取长补短的调用链根因定位算法,并且面向实际运维场景,具有更高的准确性和更细的定位粒度。
图1A为本发明一实施例提供的一种基于调用链的根因定位方法的流程图,本实施例可适用于基于根因定位算法Sketcher,将调用链数据、告警交易码和故障时间作为数据输入,并将调用链数据转换成标准格式后,依次经过链路采样、异常检测、根因排序等阶段,来最终定位故障的根源系统以及故障业务的情况,该方法可以由基于调用链的根因定位装置来执行,该装置可以采用硬件和/或软件的形式实现,该装置可配置于具备相应数据处理能力的电子设备中。如图1A所示,该方法包括:
S110、获取告警前经过告警业务的调用链,所述调用链包括所述告警业务在内的至少两个节点。
其中,微服务中每个节点的日志都记录了经过该节点的调用链(trace)id,可通过各节点的日志和经过告警业务的调用链id,高效地找到调用链上所有的节点。
具体的,在步骤S110对应的链路采样阶段中,对于产生告警的告警业务,进行故障窗口的采样。采样过程中,根据告警交易码和告警时间,确定告警业务及其告警交易码。通过告警交易码所在节点对应的调用链id,获取告警时间点前一段时间内经过告警业务的所有调用链,和各调用链在经过告警业务时所耗费的响应时间。后续将响应时间作为节点异常检测的黄金指标,进行节点的异常检测。
需要说明的是,在接入调用链数据时,需要先将系统调用数据中的字段转换成如表1所示的标准格式,即先对调用数据进行标准化处理。
表1调用数据的标准格式
其中,timestamp字段记录系统服务在该调用链中的开始时间;system_name代表该服务所属的系统;trans_type是交易码,代表系统对应的具体业务;ret_code为00时,表示返回码正常,其他均为异常,用户也可以自行指定正确的返回码格式。将数据处理成标准格式后,存入ElasticSearch中,以便进行Sketcher算法分析。
S120、基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点。
其中,响应时间标准包括响应时间阈值标准和响应时间正态分布标准。
具体的,在步骤S120对应的异常检测阶段中,遍历每条调用链的每个节点,找到其中所有的异常节点和正常节点。具体方案为:将调用链上的所有节点按交易码分类聚合,即按交易业务对节点进行分类聚合。统计每个交易码对应业务类型的平均响应时间和标准差,作为响应时间正态分布标准。然后依次对每条调用链上的每个节点,进行异常检测。判断的标准共有三个,分别为响应时间阈值标准、响应时间正态分布标准和返回码标准,三个标准全符合的节点就是正常节点,有一个不符合就是异常节点。
可选的,所述响应时间标准包括响应时间阈值标准和响应时间正态分布标准,所述基于各节点对应交易码的响应时间标准,确定各调用链上的异常节点包括:
将调用链中任一节点作为待检测节点,并确定待检测节点的当前响应时间;若所述当前响应时间不符合响应时间阈值标准或响应时间正态分布标准,则确定所述待检测节点为异常节点。
其中,响应时间阈值标准包括响应时间上限和响应时间下限,上限和下限均可以由用户指定。
具体的,对于任一需要异常检测的待检测节点,判断其当前响应时间是否超过响应时间上限,当前响应时间超过上限的节点不符合响应时间阈值标准,会被判定为异常节点;判断当前响应时间是否小于响应时间下限,小于下限的节点无需判断是否满足响应时间正态分布标准,直接被判定为正常节点。
对于当前响应时间大于下限的节点,再根据这个节点对应的交易码,利用之前计算得到的该交易码的响应时间均值和标准差,判断当前响应时间是否在正态分布的合理范围内。若当前响应时间超过均值的k倍标准差或小于均值的k倍标准差,则认为当前响应时间不在合理范围内,不符合响应时间正态分布标准,该节点为异常节点。
示例性的,图1B是根据本发明实施例提供的一种正态分布合理范围的示意图。其中,μ为均值,σ为方差。k值可以修改,一般默认为3。
可选的,其特征在于,所述基于各节点对应交易码的返回码标准,确定各调用链上的异常节点包括:
将调用链中任一节点作为待检测节点,并确定待检测节点的当前返回码;若所述当前返回码不是返回码标准中的正常返回码,则确定所述待检测节点为异常节点。
具体的,返回码00表示正常,其他情况均为异常。用户也可以针对实际运维场景,自行规定正确的返回码字段。
可选的,所述基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点之前,还包括:
根据各调用链经过所述告警业务的响应时间,按照从长到短的顺序对调用链进行排序;过滤掉排序在后的调用链。
具体的,在链路采样之后、异常检测之前,根据各调用链经过告警业务所耗费的响应时间,按照响应时间从长到短的顺序对调用链进行排序。若取全部调用链,耗时较多且意义不大。为了提高根因定位的效率,本发明根据事先规定的采样数nSamples,只取排序中对定位有更大帮助的前nSamples个调用链参与后续的异常检测,调用链上的节点是全部取的。
S130、根据各根因节点对应的交易码,确定根因交易码,所述根因节点通过根因排序策略从所述异常节点中确定。
具体的,在步骤S130对应的根因排序阶段中,调用链上的异常节点按其交易码分类聚合,然后根据指定的根因排序策略和基于该指定根因排序策略所确定的根因节点,对交易码进行排序,将排序在前的topK个交易码作为根因交易码。根因排序阶段中有三种可供选择的根因排序策略,分别是TIME策略、COUNT策略和TERM策略,用户可以根据实际需求指定所用策略。在TIME策略和TERM策略中,根因节点为调用链中开始时间最晚的异常节点;在COUNT策略中,根因节点为节点数量排前topK的异常节点。
S140、获取与所述根因交易码对应根源系统业务存在调用关系的系统业务,并根据所述根源系统业务和所述调用关系生成所述告警业务根因定位的调用链路图。
具体的,根因排序后,为便于进一步帮助用户进行根因定位,本发明并未向用户展示不够直观的根因交易码,而是为每个根因交易码,都分别构建对应的调用链路图,根因交易码与调用链路图一一对应。调用链路图的构建过程如下:根据根因交易码确定造成故障告警的根源系统以及对应业务,作为根源系统业务。将调用链中与根源系统业务存在调用关系的系统业务,和它们彼此之间的调用关系,通过调用链路图,清晰直观地呈现出来,最终形成包括一份或多份调用链路图在内的调用链分析报告,相对于根因交易码,调用链路图形式的调用链分析报告可以更好地帮助用户对根因进行定位。
示例性的,图1C是根据本发明实施例提供的一种调用链路图的示意图。其中,该链路图中包括7个系统业务,用户可对这个7个系统业务进行针对性的人工重点分析,以确定引发本次故障告警的实际根因。
本发明实施例在多个关键问题上结合多种方案取长补短,考虑多种判断异常的标准和不同的根因排序策略,具有更好的扩展性,能覆盖更多异常传播情况,更适合真实运维环境;同时,通过分析业务性能黄金指标数据-响应时间,针对潜在的问题及时反馈并处理,算法效率较高,能更好地适应业务交易场景下的海量服务节点和庞大的调用链数据规模,避免系统间因相互调用而出现大面积瘫痪的故障。
图2A为本发明又一实施例提供的一种基于调用链的根因定位方法的流程图,本实施例在上述实施例的基础上进行了优化改进。如图2A所示,该方法包括:
S210、获取告警前经过告警业务的调用链,所述调用链包括所述告警业务在内的至少两个节点。
S220、基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点。
S230、根据调用链上是否存在异常节点,将各调用链划分为正常调用链或异常调用链;
S240、若存在正常调用链,则根据各交易码在正常调用链的正常分数和在异常调用链中的异常分数确定各交易码的根因置信度,并根据各交易码的根因置信度确定根因交易码;
S250、若不存正常调用链,则根据各交易码对应的根因节点数量,确定根因交易码。
具体的,TERM策略的核心思想是综合考虑交易码对应业务在正常调用链中作为正常节点被正常调用的比例,和在异常调用链中作为根因节点被异常调用的比例,异常频率最高的交易码是根因交易码。首先将每条调用链上的异常节点按交易码分类,然后判断告警时间范围内告警业务所在的所有调用链中是否有不存在异常节点的调用链。不存在异常节点的调用链会被定义为正常调用链,存在异常节点的调用链会被定义为异常调用链。如果不存在调用链,说明无法计算交易码对应的正常分数和异常分数,则可采用对应步骤S250中技术方案的TIME策略来对交易码进行排序。如果存在正常调用链,说明可以计算交易码对应的正常分数和异常分数,则可采用对应步骤S240中技术方案的TERM策略来计算各交易码的正常分数和异常分数,并根据正常分数和异常分数确定交易码的根因置信度,按照根因置信度从大到小的顺序对交易码排序。TERM取前topK个交易码作为根因交易码。
需要说明的是,在TERM策略和TIME策略之外,还有COUNT策略也可用于对交易码进行排序,以确定根因交易码。COUNT策略的核心思想是:异常节点个数最多的交易码就是根因交易码。将每条调用链上的异常节点按交易码聚合,异常节点较多的交易码排序在前,异常节点较少的交易码排序在后。异常节点个数相同时,按照异常节点的最早开始时间进行排序,即在异常节点个数相同的情况下,开始时间越早的节点的交易码,越可能是根因交易码。排序完成后,直接取前topK个交易码作为根因交易码,排序过程中无需从异常节点中确定根因节点。
可选的,所述根据各交易码对应的根因节点数量,确定根因交易码包括:
根据根因节点所属交易码对应的异常节点数量,按照从多到少的顺序对交易码进行排序;
将排序在前的交易码确定为根因交易码;
对于异常节点数量相同的交易码,按照对应异常节点的开始时间从早到晚的顺序对交易码进行排序;
将排序在前的交易码确定为根因交易码。
具体的,当根因排序策略选择TIME策略时,获取每条调用链上的异常节点中开始时间最晚的节点,作为根因节点,然后将这些根因节点按交易码分类。根因节点个数越多的交易码,越可能是根因交易码;根因节点个数相同的情况下,开始时间越早的根因节点的交易码,越可能是根因交易码,取前topK个交易码作为根因交易码。
可选的,所述根据各交易码在正常调用链的正常分数和在异常调用链中的异常分数确定各交易码的根因置信度包括:
获取各交易码的根因节点在异常调用链的节点占比,作为各交易码的异常分数;获取各交易码的正常节点在正常调用链的节点占比,作为各交易码的正常分数;根据各交易码的异常分数和正常分数,确定各交易码的根因置信度weight。
具体的,针对每个可能为根因的交易码,计算交易码对应的正常节点,在所有正常调用链的节点中所占的比例,记为正常分数normalScore;把异常节点中开始时间最晚的节点作为异常调用链的根因节点,计算交易码对应的根因节点,在所有异常调用链的节点中所占的比例,记为异常分数abnormalScore,将正常分数和异常分数代入根因置信度计算公式,得到交易码的根因置信度。
所述根因置信度weight通过如下公式计算得到:
其中,abnormalScore为交易码的异常分数,normalScore为交易码的正常分数。
具体的,根因置信度计算公式是TF-RF(Term Frequency-Relevance Frequency)的变式,TF-RF方法常用于文本分类中,根据已知的文本分类信息,计算特征词的权重。根因置信度计算公式的原始公式如下:
原始公式中,tf是单词t在文本里出现的频率,p是包含t的正文本数量,n是包含t的负文本数量。通过该公式可以了解到特征词在文本中的相对概率分布。对该公式进行一定的修改得到的根因置信度计算公式,根因置信度计算公式的含义是致力于找到异常频率更高的交易码。
S260、获取与所述根因交易码对应根源系统业务存在调用关系的系统业务,并根据所述根源系统业务和所述调用关系生成所述告警业务根因定位的调用链路图。
示例性的,图2B是根据本发明又一实施例提供的一种基于调用链数据的根因定位算法的流程示意图。其中:
在链路采样阶段,把调用链数据、告警业务对应的交易码以及告警故障时间作为输入,对于产生告警的系统业务,进行故障窗口的采样,获取告警点前一段时间内经过告警业务的所有调用链,把这些调用链的id作为输出。
在异常检测阶段,把链路采样阶段获取的调用链id作为输入,遍历这些调用链,找到链上所有的异常节点。判断节点是否异常的标准共有三种,分别是返回码标准、响应时间阈值标准和响应时间正态分布标准,把调用链上的所有异常节点作为输出。
在根因排序阶段,把异常检测阶段获取的异常节点作为输入,把这些节点按交易码分类聚合,然后根据所选的根因排序策略,找到topK个根因交易码,就能确定造成故障的根源系统业务以及与根源系统业务存在调用关系的对应业务。在该算法中,有三种根因排序策略可供选择,分别是TIME策略、COUNT策略和TERM策略,每个策略执行后均可输出topK个根因交易码。
本发明实施例通过根据不同的异常情况,使用不同的策略进行异常排序,提高根因交易码的定位准确性。
图3为本发明又一实施例提供的一种基于调用链的根因定位装置的结构示意图。如图3所示,该装置包括:
调用链获取模块310,用于获取告警前经过告警业务的调用链,所述调用链包括所述告警业务在内的至少两个节点;
异常节点确定模块320,用于基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点;
根因交易码确定模块330,用于根据各根因节点对应的交易码,确定根因交易码,所述根因节点通过根因排序策略从所述异常节点中确定;
调用链路图生成模块340,用于获取与所述根因交易码对应根源系统业务存在调用关系的系统业务,并根据所述根源系统业务和所述调用关系生成所述告警业务根因定位的调用链路图。
本发明实施例所提供的基于调用链的根因定位装置可执行本发明任意实施例所提供的基于调用链的根因定位方法,具备执行方法相应的功能模块和有益效果。
可选的,所述装置包括:
调用链排序模块,用于根据各调用链经过所述告警业务的响应时间,按照从长到短的顺序对调用链进行排序;
调用链过滤模块,用于过滤掉排序在后的调用链。
可选的,异常节点确定模块320包括:
响应时间确定单元,用于将调用链中任一节点作为待检测节点,并确定待检测节点的当前响应时间;
第一异常节点确定单元,用于若所述当前响应时间不符合响应时间阈值标准或响应时间正态分布标准,则确定所述待检测节点为异常节点。
可选的,异常节点确定模块320包括:
当前返回码确定单元,用于将调用链中任一节点作为待检测节点,并确定待检测节点的当前返回码;
第二异常节点确定单元,用于若所述当前返回码不是返回码标准中的正常返回码,则确定所述待检测节点为异常节点。
可选的,根因交易码确定模块330包括:
调用链分类单元,用于根据调用链上是否存在异常节点,将各调用链划分为正常调用链或异常调用链;
第一根因交易码确定单元,用于若存在正常调用链,则根据各交易码在正常调用链的正常分数和在异常调用链中的异常分数确定各交易码的根因置信度,并根据各交易码的根因置信度确定根因交易码;
第二根因交易码确定单元,用于若不存正常调用链,则根据各交易码对应的根因节点数量,确定根因交易码。
可选的,所述第二根因交易码确定单元具体用于根据根因节点所属交易码对应的异常节点数量,按照从多到少的顺序对交易码进行排序;将排序在前的交易码确定为根因交易码;对于异常节点数量相同的交易码,按照对应异常节点的开始时间从早到晚的顺序对交易码进行排序;将排序在前的交易码确定为根因交易码。
可选的,第一根因交易码确定单元具体用于:获取各交易码的根因节点在异常调用链的节点占比,作为各交易码的异常分数;获取各交易码的正常节点在正常调用链的节点占比,作为各交易码的正常分数;根据各交易码的异常分数和正常分数,确定各交易码的根因置信度weight。
可选的,所述根因置信度weight通过如下公式计算得到:
其中,abnormalScore为交易码的异常分数,normalScore为交易码的正常分数。
进一步说明的基于调用链的根因定位装置也可执行本发明任意实施例所提供的基于调用链的根因定位方法,具备执行方法相应的功能模块和有益效果。
图4示出了可以用来实施本发明的实施例的电子设备40的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(ROM)42、随机访问存储器(RAM)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(ROM)42中的计算机程序或者从存储单元48加载到随机访问存储器(RAM)43中的计算机程序,来执行各种适当的动作和处理。在RAM 43中,还可存储电子设备40操作所需的各种程序和数据。处理器41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。
电子设备40中的多个部件连接至I/O接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许电子设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如基于调用链的根因定位方法。
在一些实施例中,例如基于调用链的根因定位方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由ROM 42和/或通信单元49而被载入和/或安装到电子设备40上。当计算机程序加载到RAM 43并由处理器41执行时,可以执行上文描述的例如基于调用链的根因定位方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行例如基于调用链的根因定位方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (8)
1.一种基于调用链的根因定位方法,其特征在于,包括:
获取告警前经过告警业务的调用链,所述调用链包括所述告警业务在内的至少两个节点;
基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点;
根据各根因节点对应的交易码,确定根因交易码,所述根因节点通过根因排序策略从所述异常节点中确定;
获取与所述根因交易码对应根源系统业务存在调用关系的系统业务,并根据所述根源系统业务和所述调用关系生成所述告警业务根因定位的调用链路图;
其中,所述根据各根因节点对应的交易码,确定根因交易码包括:
根据调用链上是否存在异常节点,将各调用链划分为正常调用链或异常调用链;
若存在正常调用链,则根据各交易码在正常调用链的正常分数和在异常调用链中的异常分数确定各交易码的根因置信度,并根据各交易码的根因置信度确定根因交易码;
若不存正常调用链,则根据各交易码对应的根因节点数量,确定根因交易码;
其中,所述根据各交易码在正常调用链的正常分数和在异常调用链中的异常分数确定各交易码的根因置信度包括:
获取各交易码的根因节点在异常调用链的节点占比,作为各交易码的异常分数;
获取各交易码的正常节点在正常调用链的节点占比,作为各交易码的正常分数;
根据各交易码的异常分数和正常分数,确定各交易码的根因置信度;
其中,所述根因置信度通过如下公式计算得到:其中,abnormalScore为交易码的异常分数,normalScore为交易码的正常分数。
2.根据权利要求1所述的方法,其特征在于,所述基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点之前,还包括:
根据各调用链经过所述告警业务的响应时间,按照从长到短的顺序对调用链进行排序;
过滤掉排序在后的调用链。
3.根据权利要求1所述的方法,其特征在于,所述响应时间标准包括响应时间阈值标准和响应时间正态分布标准,所述基于各节点对应交易码的响应时间标准,确定各调用链上的异常节点包括:
将调用链中任一节点作为待检测节点,并确定待检测节点的当前响应时间;
若所述当前响应时间不符合响应时间阈值标准或响应时间正态分布标准,则确定所述待检测节点为异常节点。
4.根据权利要求3所述的方法,其特征在于,所述基于各节点对应交易码的返回码标准,确定各调用链上的异常节点包括:
将调用链中任一节点作为待检测节点,并确定待检测节点的当前返回码;
若所述当前返回码不是返回码标准中的正常返回码,则确定所述待检测节点为异常节点。
5.根据权利要求1所述的方法,其特征在于,所述根据各交易码对应的根因节点数量,确定根因交易码包括:
根据根因节点所属交易码对应的异常节点数量,按照从多到少的顺序对交易码进行排序;
将排序在前的交易码确定为根因交易码;
对于异常节点数量相同的交易码,按照对应异常节点的开始时间从早到晚的顺序对交易码进行排序;
将排序在前的交易码确定为根因交易码。
6.一种基于调用链的根因定位装置,其特征在于,包括:
调用链获取模块,用于获取告警前经过告警业务的调用链,所述调用链包括所述告警业务在内的至少两个节点;
异常节点确定模块,用于基于各节点对应交易码的响应时间标准和/或节点的返回码标准,确定各调用链上的异常节点;
根因交易码确定模块,用于根据各根因节点对应的交易码,确定根因交易码,所述根因节点通过根因排序策略从所述异常节点中确定;
调用链路图生成模块,用于获取与所述根因交易码对应根源系统业务存在调用关系的系统业务,并根据所述根源系统业务和所述调用关系生成所述告警业务根因定位的调用链路图;
其中,所述根因交易码确定模块包括:
调用链分类单元,用于根据调用链上是否存在异常节点,将各调用链划分为正常调用链或异常调用链;
第一根因交易码确定单元,用于若存在正常调用链,则根据各交易码在正常调用链的正常分数和在异常调用链中的异常分数确定各交易码的根因置信度,并根据各交易码的根因置信度确定根因交易码;
第二根因交易码确定单元,用于若不存正常调用链,则根据各交易码对应的根因节点数量,确定根因交易码;
其中,所述第一根因交易码确定单元具体用于:获取各交易码的根因节点在异常调用链的节点占比,作为各交易码的异常分数;获取各交易码的正常节点在正常调用链的节点占比,作为各交易码的正常分数;根据各交易码的异常分数和正常分数,确定各交易码的根因置信度;
其中,所述根因置信度通过如下公式计算得到:其中,abnormalScore为交易码的异常分数,normalScore为交易码的正常分数。
7.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的基于调用链的根因定位方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-5中任一项所述的基于调用链的根因定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311083879.6A CN116820826B (zh) | 2023-08-28 | 2023-08-28 | 一种基于调用链的根因定位方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311083879.6A CN116820826B (zh) | 2023-08-28 | 2023-08-28 | 一种基于调用链的根因定位方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116820826A CN116820826A (zh) | 2023-09-29 |
CN116820826B true CN116820826B (zh) | 2023-11-24 |
Family
ID=88116944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311083879.6A Active CN116820826B (zh) | 2023-08-28 | 2023-08-28 | 一种基于调用链的根因定位方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820826B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111294217A (zh) * | 2018-12-06 | 2020-06-16 | 云智慧(北京)科技有限公司 | 告警分析方法、装置、系统及存储介质 |
CN112711493A (zh) * | 2020-12-25 | 2021-04-27 | 上海精鲲计算机科技有限公司 | 一种场景化根因分析应用 |
WO2021217855A1 (zh) * | 2020-04-30 | 2021-11-04 | 平安科技(深圳)有限公司 | 异常根因定位方法、装置、电子设备及存储介质 |
CN114024837A (zh) * | 2022-01-06 | 2022-02-08 | 杭州大乘智能科技有限公司 | 一种微服务系统的故障根因定位方法 |
CN114461434A (zh) * | 2022-02-11 | 2022-05-10 | 中国工商银行股份有限公司 | 故障根因分析方法、装置、电子设备及介质 |
CN114598539A (zh) * | 2022-03-16 | 2022-06-07 | 京东科技信息技术有限公司 | 根因定位方法、装置、存储介质及电子设备 |
CN115118574A (zh) * | 2022-06-07 | 2022-09-27 | 马上消费金融股份有限公司 | 一种数据处理方法、装置及存储介质 |
CN115145751A (zh) * | 2021-03-31 | 2022-10-04 | 阿里巴巴新加坡控股有限公司 | 微服务系统故障根因定位方法、装置、设备及存储介质 |
CN115756929A (zh) * | 2022-11-23 | 2023-03-07 | 北京大学 | 一种基于动态服务依赖图的异常根因定位方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7552447B2 (en) * | 2004-05-26 | 2009-06-23 | International Business Machines Corporation | System and method for using root cause analysis to generate a representation of resource dependencies |
-
2023
- 2023-08-28 CN CN202311083879.6A patent/CN116820826B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111294217A (zh) * | 2018-12-06 | 2020-06-16 | 云智慧(北京)科技有限公司 | 告警分析方法、装置、系统及存储介质 |
WO2021217855A1 (zh) * | 2020-04-30 | 2021-11-04 | 平安科技(深圳)有限公司 | 异常根因定位方法、装置、电子设备及存储介质 |
CN112711493A (zh) * | 2020-12-25 | 2021-04-27 | 上海精鲲计算机科技有限公司 | 一种场景化根因分析应用 |
CN115145751A (zh) * | 2021-03-31 | 2022-10-04 | 阿里巴巴新加坡控股有限公司 | 微服务系统故障根因定位方法、装置、设备及存储介质 |
CN114024837A (zh) * | 2022-01-06 | 2022-02-08 | 杭州大乘智能科技有限公司 | 一种微服务系统的故障根因定位方法 |
CN114461434A (zh) * | 2022-02-11 | 2022-05-10 | 中国工商银行股份有限公司 | 故障根因分析方法、装置、电子设备及介质 |
CN114598539A (zh) * | 2022-03-16 | 2022-06-07 | 京东科技信息技术有限公司 | 根因定位方法、装置、存储介质及电子设备 |
CN115118574A (zh) * | 2022-06-07 | 2022-09-27 | 马上消费金融股份有限公司 | 一种数据处理方法、装置及存储介质 |
CN115756929A (zh) * | 2022-11-23 | 2023-03-07 | 北京大学 | 一种基于动态服务依赖图的异常根因定位方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116820826A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109587008B (zh) | 检测异常流量数据的方法、装置及存储介质 | |
CN116049146B (zh) | 一种数据库故障处理方法、装置、设备及存储介质 | |
CN116225769B (zh) | 一种系统故障根因的确定方法、装置、设备及介质 | |
CN116089231B (zh) | 一种故障告警方法、装置、电子设备及存储介质 | |
CN116010220A (zh) | 一种告警诊断方法、装置、设备及存储介质 | |
CN114844768A (zh) | 信息分析方法、装置及电子设备 | |
CN116962272B (zh) | 一种网络指标的异常检测方法、装置、设备及存储介质 | |
CN116668264A (zh) | 一种告警聚类的根因分析方法、装置、设备及存储介质 | |
CN116820826B (zh) | 一种基于调用链的根因定位方法、装置、设备及存储介质 | |
CN117034149A (zh) | 故障处理策略确定方法、装置、电子设备和存储介质 | |
CN116755974A (zh) | 云计算平台运维方法、装置、电子设备及存储介质 | |
CN116975081A (zh) | 一种日志诊断集更新方法、装置、设备及存储介质 | |
CN116431505A (zh) | 一种回归测试方法、装置、电子设备、存储介质及产品 | |
CN116226644A (zh) | 设备故障类型的确定方法、装置、电子设备及存储介质 | |
CN115794473A (zh) | 一种根因告警的定位方法、装置、设备及介质 | |
CN115600607A (zh) | 一种日志检测方法、装置、电子设备及介质 | |
CN114881112A (zh) | 一种系统异常检测方法、装置、设备及介质 | |
CN114760190A (zh) | 一种面向服务的融合网络性能异常检测方法 | |
CN117395071B (zh) | 一种异常检测方法、装置、设备及存储介质 | |
CN116915463B (zh) | 一种调用链数据安全分析方法、装置、设备及存储介质 | |
CN117608896A (zh) | 交易数据处理方法、装置、电子设备及存储介质 | |
CN113850499B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN116627695B (zh) | 一种告警事件根因推荐方法、装置、设备及存储介质 | |
CN115829160B (zh) | 一种时序异常预测方法、装置、设备及存储介质 | |
CN117651000A (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 |