CN117171623A - 细粒度的调用链异常检测方法、模型的训练方法及装置 - Google Patents
细粒度的调用链异常检测方法、模型的训练方法及装置 Download PDFInfo
- Publication number
- CN117171623A CN117171623A CN202311269033.1A CN202311269033A CN117171623A CN 117171623 A CN117171623 A CN 117171623A CN 202311269033 A CN202311269033 A CN 202311269033A CN 117171623 A CN117171623 A CN 117171623A
- Authority
- CN
- China
- Prior art keywords
- service
- calling
- time
- features
- call
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000012549 training Methods 0.000 title claims abstract description 103
- 238000001514 detection method Methods 0.000 title claims abstract description 68
- 238000012545 processing Methods 0.000 claims abstract description 93
- 230000008569 process Effects 0.000 claims abstract description 49
- 230000005856 abnormality Effects 0.000 claims abstract description 25
- 230000000977 initiatory effect Effects 0.000 claims abstract description 13
- 239000011159 matrix material Substances 0.000 claims description 59
- 230000002159 abnormal effect Effects 0.000 claims description 40
- 230000002123 temporal effect Effects 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 5
- 239000000758 substrate Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 206010000117 Abnormal behaviour Diseases 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 2
- 230000008485 antagonism Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 1
- 238000013256 Gubra-Amylin NASH model Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000011151 fibre-reinforced plastic Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000002759 z-score normalization Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供细粒度的调用链异常检测方法、模型的训练方法及装置,方法包括:确定待处理请求的调用链;提取调用链中,每一个调用单元的结构特征和时间特征;其中,调用单元用于表示调用链中的第一服务调用该调用链中的第二服务的调用过程;时间特征包括:处理时间和等待时间;结构特征用于描述第一服务与第二服务之间的调用顺序;第一服务为调用发起服务,第二服务为被调用的服务;将结构特征和时间特征输入至训练好的VGAE模型中,进行调用链的异常检测。由此,对于调用链的特征进行进一步的细分,将调用链的时间特征分成等待时间和处理时间,使用VGAE模型对调用链数据进行细粒度的检测,可提高调用链异常检测的准确性。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及细粒度的调用链异常检测方法、模型的训练方法及装置。
背景技术
微服务架构自分布式服务架构衍化而来,既保留了原有分布式系统的基础结构,又提升了系统整体的运转效率。但是在微服务架构中,服务是细粒度的,协议是轻量级的,微服务架构在给软件服务带来巨大便利的同时,也给软件服务的运维带来了巨大的挑战。例如:针对于微服务架构的复杂调用关系,给运维人员在调用链异常检测、故障定位方面带来了挑战。
相关技术中,主要采用监督和半监督机器学习方法对调用链进行异常检测,该方法需要手动标注才能完成模型的训练过程,且需要运维人员更新异常标注,效率较低、开销较大且不利于维护。而现有的无监督调用链异常检测算法虽然解决了上述问题,但是调用链异常检测的准确度和精度较低。
发明内容
本发明实施例提供细粒度的调用链异常检测方法、模型的训练方法及装置,以解决相关技术中调用链异常检测方法的准确率较低的技术问题。
第一方面,本发明实施例提供一种细粒度的调用链异常检测方法,所述方法包括:
确定待处理请求的调用链;
提取所述调用链中,每一个调用单元的结构特征和时间特征;
其中,所述调用单元用于表示所述调用链中的第一服务调用所述调用链中的第二服务的调用过程;所述时间特征包括:处理时间和等待时间;所述处理时间为所述第二服务处理所述待处理请求的子请求所消耗的时间,所述等待时间为所述第一服务向所述第二服务发送所述子请求起始,到所述第二服务开始处理所述子请求为止所消耗的时间;所述结构特征用于描述所述第一服务与所述第二服务之间的调用顺序;所述第一服务为调用发起服务,所述第二服务为被调用的服务;
将所述结构特征和所述时间特征输入至所述训练好的变分图自动编码器VGAE模型中,进行所述调用链的异常检测。
可选的,所述结构特征和所述时间特征均能够以矩阵的形式进行表示;
其中,所述结构特征以邻接矩阵的形式进行表示,所述邻接矩阵中的元素用于表示所述调用链的服务之间是否存在调用关系;
所述时间特征以特征矩阵的形式表示,所述特征矩阵中的列分别用于存储所述等待时间和所述处理时间。
可选的,将所述结构特征和所述时间特征输入至所述训练好的VGAE模型中,进行所述调用链的异常检测包括:
将所述结构特征和所述时间特征输入至所述训练好的VGAE模型中,得到所述训练好的VGAE模型的输出结果,其中,所述输出结果为所述调用链的异常得分;
对所述异常得分进行P值化处理;
根据P值化处理后所得到的P值与阈值的大小关系,确定所述调用链是否异常。
可选的,在将所述结构特征和所述时间特征输入至所述训练好的VGAE模型中,进行所述调用链的异常检测之后,所述方法还包括:
若检测结果为所述调用链异常则执行根因定位算法,确定导致所述调用链异常的服务,其中包括:
搜索用于训练VGAE模型的训练集;
若在所述训练集中搜索到与所述特征矩阵齐次的齐次调用链样本,则基于所述齐次调用链样本的等待时间的标准值和标准偏差,以及所述齐次调用链样本的处理时间的标准值和标准偏差,对所述调用链的每个调用单元的等待时间和处理时间均进行z分数归一化处理,得到N个z分数值,其中,N的个数为调用单元的个数,N为正整数;
将所述N个z分数值按从高到低的顺序筛选出K个z分数值,其中,K为正整数,且K小于N;
将所述K个z分数值所对应的调用单元中的服务确定为导致所述调用链异常的服务。
第二方面,本发明实施例提供一种模型的训练方法,所述方法包括:
基于训练集中的调用链样本对待训练的VGAE模型进行训练,得到训练好的VAGE模型;其中包括:
提取每一条所述调用链样本中,每一个调用单元的结构特征和时间特征;其中,所述调用单元用于表示所述调用链样本中的第三服务调用所述调用链样本中的第四服务的调用过程;所述时间特征包括:处理时间和等待时间;所述处理时间为所述第四服务处理自身所接收到的调用请求所消耗的时间,所述等待时间为所述第三服务向所述第四服务发送所述调用请求起始,到所述第四服务开始处理所述调用请求为止所消耗的时间;所述结构特征用于描述所述第三服务与所述第四服务之间的调用顺序;所述第三服务为调用发起服务,所述第四服务为被调用的服务;
基于所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练;
其中,所述待训练的VGAE模型的输入数据为所述结构特征和所述时间特征,所述待训练的VGAE模型的输出数据为重构的结构特征和重构的时间特征,训练目的为基于预设的损失函数,不断调整所述VGAE模型的内部参数,以最小化所述输出数据与所述输入数据之间的差异,并学习所述调用链样本的特征表示和结构表示。
可选的,所述结构特征和所述时间特征均能够以矩阵的形式进行表示。
可选的,基于所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练包括:
对所述结构特征和所述时间特征进行去噪处理,基于去噪处理后的所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练;
其中,对所述结构特征和所述时间特征进行去噪处理包括:
将所述结构特征和所述时间特征输入预先训练好的生成对抗网络;
基于所述生成对抗网络对所述结构特征和所述时间特征进行去噪处理;
其中,所述生成对抗网络包括第一编码器和第二编码器,所述第一编码器和所述第二编码器共享生成器,所述第一编码器包括:生成器和第一判别器,所述第二编码器包括生成器和第二判别器,所述第一判别器用于输出去噪处理后的所述结构特征和所述时间特征。
可选的,在将所述结构特征和所述时间特征输入预先训练好的生成对抗网络之前,所述方法还包括:
对所述生成对抗网络进行训练,其中,所述生成器用于接收所述训练集中的调用链样本的结构特征和时间特征,并输出潜在变量;所述第一判别器和所述第二判别器均用于接收所述潜在变量,并对所述潜在变量进行特征重构;所述第一判别器还用于将经自身所重构后的特征,重新输入到所述生成器中;所述生成器,还用于基于经第一判别器所重构后的特征,再次输出新的潜在变量;所述第一判别器的目标为基于预设的损失函数,最小化经自身重构后的特征,与所述调用链样本的结构特征和时间特征之间的差异,以对抗第二判别器;所述第二判别器的目标为基于预设的损失函数,最大化经第一判别器所重构的特征,与所述调用链样本的结构特征和时间特征之间的差异,以提高区分经第一判别器所重构的特征,与调用链样本的结构特征和时间特征的能力,以对抗第一判别器。
第三方面,本发明实施例提供一种细粒度的调用链异常检测装置,所述装置包括:
确定模块,用于确定待处理请求的调用链;
执行模块,用于提取所述调用链中,每一个调用单元的结构特征和时间特征;
其中,所述调用单元用于表示所述调用链中的第一服务调用所述调用链中的第二服务的调用过程;所述时间特征包括:处理时间和等待时间;所述处理时间为所述第二服务处理所述待处理请求的子请求所消耗的时间,所述等待时间为所述第一服务向所述第二服务发送所述子请求起始,到所述第二服务开始处理所述子请求为止所消耗的时间;所述结构特征用于描述所述第一服务与所述第二服务之间的调用顺序;所述第一服务为调用发起服务,所述第二服务为被调用的服务;
所述执行模块,还用于将所述结构特征和所述时间特征输入至所述训练好的变分图自动编码器VGAE模型中,进行所述调用链的异常检测。
可选的,所述结构特征和所述时间特征均能够以矩阵的形式进行表示;
其中,所述结构特征以邻接矩阵的形式进行表示,所述邻接矩阵中的元素用于表示所述调用链的服务之间是否存在调用关系;
所述时间特征以特征矩阵的形式表示,所述特征矩阵中的列分别用于存储所述等待时间和所述处理时间。
可选的,所述执行模块,还用于将所述结构特征和所述时间特征输入至所述训练好的VGAE模型中,得到所述训练好的VGAE模型的输出结果,其中,所述输出结果为所述调用链的异常得分;
对所述异常得分进行P值化处理;
根据P值化处理后所得到的P值与阈值的大小关系,确定所述调用链是否异常。
可选的,所述执行模块,还用于在将所述结构特征和所述时间特征输入至所述训练好的VGAE模型中,进行所述调用链的异常检测之后,若检测结果为所述调用链异常则执行根因定位算法,确定导致所述调用链异常的服务,其中包括:
搜索用于训练VGAE模型的训练集;
若在所述训练集中搜索到与所述特征矩阵齐次的齐次调用链样本,则基于所述齐次调用链样本的等待时间的标准值和标准偏差,以及所述齐次调用链样本的处理时间的标准值和标准偏差,对所述调用链的每个调用单元的等待时间和处理时间均进行z分数归一化处理,得到N个z分数值,其中,N的个数为调用单元的个数,N为正整数;
将所述N个z分数值按从高到低的顺序筛选出K个z分数值,其中,K为正整数,且K小于N;
将所述K个z分数值所对应的调用单元中的服务确定为导致所述调用链异常的服务。
第四方面,本发明实施例提供一种模型的训练装置,所述装置包括:
训练模块,用于基于训练集中的调用链样本对待训练的VGAE模型进行训练,得到训练好的VAGE模型;其中包括:
提取每一条所述调用链样本中,每一个调用单元的结构特征和时间特征;其中,所述调用单元用于表示所述调用链样本中的第三服务调用所述调用链样本中的第四服务的调用过程;所述时间特征包括:处理时间和等待时间;所述处理时间为所述第四服务处理自身所接收到的调用请求所消耗的时间,所述等待时间为所述第三服务向所述第四服务发送所述调用请求起始,到所述第四服务开始处理所述调用请求为止所消耗的时间;所述结构特征用于描述所述第三服务与所述第四服务之间的调用顺序;所述第三服务为调用发起服务,所述第四服务为被调用的服务;
基于所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练;
其中,所述待训练的VGAE模型的输入数据为所述结构特征和所述时间特征,所述待训练的VGAE模型的输出数据为重构的结构特征和重构的时间特征,训练目的为基于预设的损失函数,不断调整所述VGAE模型的内部参数,以最小化所述输出数据与所述输入数据之间的差异,并学习所述调用链样本的特征表示和结构表示。
可选的,所述结构特征和所述时间特征均能够以矩阵的形式进行表示。
可选的,所述训练模块,还用于对所述结构特征和所述时间特征进行去噪处理,基于去噪处理后的所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练;
其中,对所述结构特征和所述时间特征进行去噪处理包括:
将所述结构特征和所述时间特征输入预先训练好的生成对抗网络;
基于所述生成对抗网络对所述结构特征和所述时间特征进行去噪处理;
其中,所述生成对抗网络包括第一编码器和第二编码器,所述第一编码器和所述第二编码器共享生成器,所述第一编码器包括:生成器和第一判别器,所述第二编码器包括生成器和第二判别器,所述第一判别器用于输出去噪处理后的所述结构特征和所述时间特征。
可选的,所述训练模块,还用于在将所述结构特征和所述时间特征输入预先训练好的生成对抗网络之前,对所述生成对抗网络进行训练,其中,所述生成器用于接收所述训练集中的调用链样本的结构特征和时间特征,并输出潜在变量;所述第一判别器和所述第二判别器均用于接收所述潜在变量,并对所述潜在变量进行特征重构;所述第一判别器还用于将经自身所重构后的特征,重新输入到所述生成器中;所述生成器,还用于基于经第一判别器所重构后的特征,再次输出新的潜在变量;所述第一判别器的目标为基于预设的损失函数,最小化经自身重构后的特征,与所述调用链样本的结构特征和时间特征之间的差异,以对抗第二判别器;所述第二判别器的目标为基于预设的损失函数,最大化经第一判别器所重构的特征,与所述调用链样本的结构特征和时间特征之间的差异,以提高区分经第一判别器所重构的特征,与调用链样本的结构特征和时间特征的能力,以对抗第一判别器。
第五方面,本发明实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的细粒度的调用链异常检测方法和第二方面所述的模型的训练方法的步骤。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的细粒度的调用链异常检测方法和第二方面所述的模型的训练方法的步骤。
由此,本发明实施例所示方法对于调用链的特征进行进一步的细分,将调用链的时间特征分成等待时间和处理时间,使用VGAE模型对于调用链数据进行细粒度的检测,可提高异常检测的准确性。
进一步地,使用去噪后的、且细粒度的调用链数据对VGAE(Variational GraphAuto-Encoders,图变分自编码器)模型进行训练,可以从调用链的结构中学习到潜在的表示,这些表示能够捕获微服务之间的交互模式、频率和其他重要特性;同时,VGAE模型可以同时考虑等待时间和处理时间,为每一个服务调用提供更为全面的特征表示。基于此,在进行调用链的异常检测时,可以更准确地辨别出偏离正常模式的调用链,以提高调用链异常检测的准确性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种细粒度的调用链异常检测方法的流程图;
图2为本发明实施例提供的一种调用链的特征矩阵的示意图;
图3为本发明实施例提供的一种调用链的邻接矩阵的示意图;
图4为本发明实施例提供的一种模型的训练方法的流程图;
图5为本发明实施例所示的VGAE模型的架构框图;
图6为本发明实施例提供的一种模型的训练方法的流程图;
图7为本发明实施例提供的一种基于GAN模型架构的方法的简易流程图;
图8为本发明实施例提供的一种细粒度的调用链异常检测方法的流程图;
图9为本发明实施例提供的一种微服务系统中调用链的示意图;
图10为本发明实施例提供的一种调用链中两个示例性调用过程的详细信息的示意图;
图11本发明实施例提供的一种细粒度的调用链异常检测装置的结构框图;
图12本发明实施例提供的一种细粒度的调用链异常检测装置的结构框图;
图13为本发明实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了根据本发明实施例所示的一种细粒度的调用链异常检测方法,如图1所示,方法包括:
步骤S101、确定待处理请求的调用链;
步骤S102、提取调用链中,每一个调用单元的结构特征和时间特征;
步骤S103、将结构特征和时间特征输入至训练好的VGAE模型中,进行调用链的异常检测。
需要说明的是,在步骤S101中,调用链是一种用于监测和分析分布式应用程序性能的数据类型。它是一种记录了应用程序中各个组件或服务之间相互调用关系的数据。调用链数据通常用于识别和解决应用程序性能问题,特别是在微服务架构中,其中多个服务相互协作以完成复杂的任务。而调用链则可以帮助开发和运维人员理解请求是如何在各个服务之间流动的,以及每个服务的处理时间和状态。
例如:当用户在购物网站购物时,其行为如下:登录、浏览商品、添加商品到购物车并进行支付。在微服务架构中,这个流程会涉及多个微服务之间的交互。用户首先触发“用户管理服务”来登录,随后浏览商品,可能会涉及“商品展示服务”,当用户选择了一个商品,会将其加入购物车,这可能需要与“购物车服务”进行交互,最后,用户进行支付,则需要调用“支付服务”,这整个用户的操作序列,涉及了多个服务的交互,构成了一个“调用链”。而待处理请求则可以理解为触发整个服务过程的初始请求。
在步骤S102中,调用单元则用于表示调用链中的第一服务调用该调用链中的第二服务的调用过程;时间特征包括:处理时间和等待时间;处理时间为第二服务处理待处理请求的子请求所消耗的时间,等待时间为第一服务向第二服务发送子请求起始,到第二服务开始处理子请求为止所消耗的时间;结构特征用于描述第一服务与第二服务之间的调用顺序;第一服务为调用发起服务,第二服务为被调用的服务。例如,如果A打电话给B,B接电话并与A交谈的时间可看作处理时间。等待时间则是服务在实际开始工作前等待的时间,例如:从A拨打电话到B接听之间的时间可看作等待时间。
在一种可能的实现方式中,结构特征和时间特征均能够以矩阵的形式进行表示;其中,结构特征以邻接矩阵的形式进行表示,邻接矩阵中的元素用于表示调用链的服务之间是否存在调用关系;时间特征以特征矩阵的形式表示,特征矩阵中的列分别用于存储等待时间和处理时间,例如:特征矩阵(TFM)的第一维(或说第一列)可存放处理时间,第二维(或第二列)可存放等待时间(如图2所示)。而邻接矩阵中,元素表示调用链的服务之间是否存在调用关系,例如:如果一个服务调用了另一个服务,那么这两个服务之间会有一个调用关系,可以矩阵里的非零值(非零值可以为1,如图3所示)进行表示。
在步骤S103中,需要说明的是,在微服务或分布式环境中,由于存在大量的服务和组件,有时可能某个服务会出现延迟、错误或其他不正常的行为。这种不正常的行为会在调用链中留下异常的迹象。也就是说,异常指的是那些不符合正常行为的模式。调用链异常检测的目的是自动检测调用链的异常迹象,从而发现系统中的问题或性能瓶颈,以保障开发和运维人员可以更早地识别并解决问题,确保系统的稳定性和性能。
在一种可能的实现方式中,将结构特征和时间特征输入至训练好的VGAE模型中,进行调用链的异常检测包括:将结构特征和时间特征输入至训练好的VGAE模型中,得到训练好的VGAE模型的输出结果,其中,输出结果为调用链的异常得分;对异常得分进行P值化处理;根据P值化处理后所得到的P值,确定调用链是否异常。
需要说明的是,VGAE模型会为每个调用链计算一个异常得分。这个得分表示了该调用链与正常情况的偏离程度。因为调用链数据是实时生成的,所以手动为这些异常得分设置一个固定的分类阈值是不实际的。为了克服这个问题,本发明实施例采用P值方法。可选的,p值可以表示观察到的数据(或更极端的数据)出现的概率,假设数据是在正常情况下生成的。较低的p值意味着观察到的数据很可能是异常的。可选的,将p值设置为0.001。这表明只有当一个调用链的异常得分对应的p值小于0.001时,才会认为这个调用链是异常的,且该值的选择是基于统计假设检验中常用的标准。由此,可以提高异常检测的准确情况,避免了手动设置阈值所导致的调用链异常检测不准确。
在一种可能的实现方式中,在步骤103、将结构特征和时间特征输入至训练好的VGAE模型中,进行调用链的异常检测之后,方法还包括:
若检测结果为调用链异常,则执行根因定位算法,确定导致调用链异常的服务。其中,根因定位指的是在检测出调用链异常之后,应用各种分析技术,包括机器学习、人工智能、模型比对等,以确定故障的根本原因。具体地,可搜索用于训练VGAE模型的训练集;若在训练集中搜索到与特征矩阵齐次的齐次调用链样本,则基于齐次调用链样本的等待时间的标准值和标准偏差,以及齐次调用链样本的处理时间的标准值和标准偏差,对调用链的每个调用单元的等待时间和处理时间均进行z分数归一化处理,得到N个z分数值,其中,N的个数为调用单元的个数,N为正整数;将N个z分数值按从高到低的顺序筛选出K个z分数值,其中,K为正整数,且K小于N;将K个z分数值所对应的调用单元中的服务确定为导致调用链异常的服务。由此,可精确地确定出最终导致调用链异常的服务。
综上,本发明实施例对调用链的特征进行进一步的拆分,将调用链的时间特征分成等待时间和处理时间,并使用训练好的VGAE模型对于调用链数据进行细粒度的检测,可提高调用链异常检测的准确性。
图4示出了一种模型的训练方法,即基于训练集中的调用链样本对待训练的VGAE模型进行训练,得到训练好的VAGE模型,如图4所示,方法包括:
步骤S401、提取每一条调用链样本中,每一个调用单元的结构特征和时间特征;
步骤S402、基于结构特征和时间特征,对待训练的VGAE模型进行训练。
需要说明的是,结构特征和时间特征均能够以矩阵的形式进行表示(同图1所示的实施例)。调用单元用于表示调用链样本中的第三服务调用调用链样本中的第四服务的调用过程;时间特征包括:处理时间和等待时间;处理时间为第四服务处理自身所接收到的调用请求所消耗的时间,等待时间为第三服务向第四服务发送调用请求起始,到第四服务开始处理调用请求为止所消耗的时间;结构特征用于描述第三服务与第四服务之间的调用顺序;第三服务为调用发起服务,第四服务为被调用的服务。
且待训练的VGAE模型的输入数据为结构特征和时间特征,待训练的VGAE模型的输出数据为重构的结构特征和重构的时间特征,训练目的为基于预设的损失函数,不断调整VGAE模型的内部参数,以最小化输出数据与输入数据之间的差异,并学习调用链样本的特征表示和结构表示。
需要说明的是,VGAE是一种用于图数据的深度学习模型,它结合了自编码器(Autoencoder)和变分自编码器(Variational Autoencoder,VAE)的思想,用于图嵌入(Graph Embedding)和图生成(Graph Generation)任务。VGAE的主要目标是将图中的节点映射到低维连续向量空间,从而保留了节点之间的关系和图的结构。
VGAE模型的设计如图5所示。其中A和F分别代表了调用链的邻接矩阵和特征矩阵,N表示每条调用链涉及到的服务数量,在编码器部分使用图卷积神经网络对A和F进行编码成隐藏特征Z。随后,将隐藏特征Z传递给编码器,以获取变分后验分布(Z│A,F)。之后使用一个全连接网络来解码Z,并将其转换回节点级别的特征,最后利用这些特征来生成重建的A^和F^。/>(Z│A,F)和p_θ(F\A,Z)分别表示主变分自动编码器(VAE)的编码器和解码器。此外,p_θ(z)表示学习的RealNVP先验。此方法的损失函数公式如下:
Loss=γ·KLD[q(Z|F)||p(Z)]-Eq(Z|A,F)[logp(A|Z)]
其中,γ是一个超参数,用于平衡KL分歧。
在一种可能的实现方式中,如图6所示,基于结构特征和时间特征,对待训练的VGAE模型进行训练包括:
步骤S601、对结构特征和时间特征进行去噪处理;
步骤S602、基于去噪处理后的结构特征和时间特征,对待训练的VGAE模型进行训练。
其中,噪声数据是指在收集、传输或处理数据过程中,出现了不相关的、随机的、干扰性的信息或变化,这些信息或变化不代表有意义的数据,反而会干扰对数据的正确分析和解释。
在一种可能的实现方式中,对结构特征和时间特征进行去噪处理包括:将结构特征和时间特征输入预先训练好的生成对抗网络;基于生成对抗网络对结构特征和时间特征进行去噪处理;其中,生成对抗网络包括第一编码器和第二编码器,第一编码器和第二编码器共享生成器,第一编码器包括:生成器和第一判别器,第二编码器包括生成器和第二判别器,第一判别器用于输出去噪处理后的结构特征和时间特征。
可理解的是,在将结构特征和时间特征输入预先训练好的生成对抗网络之前,方法还包括:对生成对抗网络进行训练。
需要说明的是,生成器用于接收训练集中的调用链样本的结构特征和时间特征,并输出潜在变量;第一判别器和第二判别器均用于接收潜在变量,并对潜在变量进行特征重构;第一判别器还用于将经自身所重构后的特征,重新输入到生成器中;生成器,还用于基于经第一判别器所重构后的特征,再次输出新的潜在变量;第一判别器的目标为基于预设的损失函数,最小化经自身重构后的特征,与调用链样本的结构特征和时间特征之间的差异,以对抗第二判别器;第二判别器的目标为基于预设的损失函数,最大化经第一判别器所重构的特征,与调用链样本的结构特征和时间特征之间的差异,以提高区分经第一判别器所重构的特征,与调用链样本的结构特征和时间特征的能力,以对抗第一判别器。
本发明实施例所示的GAN(Generative Adversarial Networks,生成对抗网络)架构包括两个自动编码器A1和A2。如下述公式所示,可通过特征提取从训练集的调用链样本数据中提取特征,将其表示为F,Fi表示来自一个调用链的特征,其中i∈[1,n]。G表示生成器,D1表示判别器1,D2表示判别器2,A1(F)表示由自动编码器A1重构的特征,A2(F)表示由自动编码器A2重构的特征,F′表示调用链的真实数据特征和生成的数据特征的集合。
F={f1,f2,...,fn}
A1(F)=D1(G(F))
F′=F∪A1(F)
A2(F′)=D2(G(F′))
图7展示了基于GAN方法的执行过程。最初,两个自动编码器(A1和A2)重建正常输入的特征F。在训练过程中,A1干扰A2的判断,同时A2确定数据是真实的F还是A1生成的,即A1(F)。此方法能够有效地减少调用链数据中噪声的影响,并提高用于离线训练的数据的质量。
进一步地,可分为两个阶段:
第一阶段:重建调用链。输入特征F由生成器编码为潜在变量Z,然后由判别器1和判别器2依次对其进行重构。具体实施原则由下述公式给出:
这里和/>分别表示自动编码器A1和A2的损失函数,“||||”表示L2范数。
第二阶段:分类。在处理输入特征之后,A2的目的是在原始调用链特征和来自A1的重构调用链特征之间进行区分。来自A1的特征被重复编码到Z中。根据对抗性训练框架,A1的目标是最小化F和A2的输出之间的区别,而A2的目标是使其最大化。目标函数可以写成:
这说明了以下损失函数:
其中n表示训练的轮数(epoch),调用链特征经过两轮计算后,异常分数可定义如下:
其中,α是一个超参数,它决定了A1和A2中两个损失函数的比例。α的大小决定了噪声滤波过程的灵敏度,通过异常分数可以区分调用链数据的特征是否是噪声。
综上,本发明实施例使用基于GAN的算法,对于调用链中的噪声数据进行过滤,并基于过滤后的数据对VGAE模型进行训练,以解决调用链数据中混有噪声导致的模型训练不准确,进而导致调用链异常检测不准确的问题,提高无监督机器学习算法检测的准确性。
进一步地,使用去噪后的、且细粒度的调用链数据对VGAE模型进行训练,可以从调用链的结构中学习到潜在的表示,这些表示能够捕获微服务之间的交互模式、频率和其他重要特性;同时,VGAE模型可以同时考虑等待时间和处理时间,为每一个服务调用提供更为全面的特征表示。基于此,在进行调用链的异常检测时,可以更准确地辨别出偏离正常模式的调用链,以提高调用链异常检测的准确性。
结合图1和图4,本发明实施例的方法可整体概括如下,如图8所示,收集调用链数据注入到模型框架,首先提取调用链数据中的数据特征,具体包括结构特征和时间特征,之后数据首先会经过噪声处理模块,去除调用链数据中的噪声,将去除噪声后的调用链数据注入VGAE模型中进行训练,得到训练好的模型,将训练好的模型部署在机器上;在使用训练好的模型,即在在线检测过程中,实时收集调用链数据,将调用链数据输入训练好的模型中进行异常检测,检测之后进行根因定位,输出根因定位的结果并通过例如:企业微信机器人的方式通知相关运维人员。
现对本发明实施例的整体流程进行进一步介绍,本发明实施例所示流程可具体分为三个部分:
1、数据预处理部分,数据预处理部分又可细分为特征提取和噪声处理两部分。
在特征提取部分中,如图9所示,显示了一个微服务系统的调用链情况。该调用链记录了每个服务的处理时间,以及请求和响应的执行时间。图8显示了请求的总体结构,图10则示例性的给出了调用过程2和调用过程8的详细信息。通过分析这些信息,操作员可以识别异常事件的发生并定位异常事件的根本原因。
相关技术中,用于检测调用链数据的异常方法主要集中在响应时间和调用结构特征上,并未充分利用所有可用的特征,这限制了调用链异常检测的有效性。本发明实施例中,对于调用链数据中的每个调用都包含时间特征,如图1所示,开始时间表示服务发送请求的时刻(如服务C向服务E发送请求),结束时间表示调用过程的结束时间,即执行过程的开始时间。通过这些时间特征,可以计算服务的处理时间和服务处理请求前的等待时间,如公式(1)所示:
这里,ST(5)和ST(6)分别表示调用5和调用6的开始时间,而ET(5)则表示调用5的结束时间。PT(E)代表服务E的调用间隔,称之为处理时间。WT(5)表示请求传输和排队等待期间消耗的时间,称之为调用5的等待时间。通过这些特征可以更深入地了解和追踪调用链中,各个服务之间的调用情况,有助于后续高精度地检测调用链中的许多不同的异常情况。
具体的,对于每条调用链,可提取三种类型的特征,即处理时间、调用结构和等待时间,来表示一个调用链。可以引入新的数据结构,称为调用链特征矩阵(TFM),用于存储从调用链中提取的特征。每个调用单元span的执行时间(处理时间)按照调用路径的顺序存储在TFM的第一维中。并将使用公式(1)所描述的方法计算得到的每个服务的等待时间,按照与执行时间相同的顺序存储在TFM的第二维中(如图2所示)。关于调用结构,可使用一种稀疏矩阵(邻接矩阵,如图3所示),按照调用路径的顺序存储每个调用单元span中的终端服务(如果调用单元包括图9所示的服务A和服务B,则终端服务是指服务B,即被调用的服务)。当一个调用链被转化为调用图时,每个服务可充当调用图中的一个节点,而两个服务之间的调用则对应于邻接矩阵中的非零元素。
在噪声处理部分中,需要说明的是,大规模的现代微服务系统总是涉及大量的调用数据和操作实例。因此确保所有收集的调用链数据的质量是一项挑战,因为记录过程可能会因机器故障或手动错误而出现问题。而现有的技术对于数据存在噪声的问题并没有解决,基于此,本发明实施例对调用链数据进行分析,发现噪声可分为三类:等待时间噪声、处理时间噪声和调用结构噪声。其中调用结构噪声所占比例最大,约为70%,而等待时间噪声和处理时间噪声的百分比分别为25%和5%。
在离线训练过程中,噪声是模型学习标准模式能力的一个重大障碍。为了解决有噪声的调用链数据问题,本发明实施例在对抗性训练框架内提出了一种自动编码器架构(同上述模型训练的实施例中所介绍的内容,在此不再赘述),其灵感来自生成对抗性网络。所提出的方法是一种无监督的神经网络,包括一个生成器和两个判别器。生成器旨在生成调用链数据,以最大限度地提高判别器出错的概率。同时,生成器从调用链数据中重建特征,并将其分类为真实的或生成的。
在离线训练阶段,主要采用VGAE进行模型的训练(同上述模型训练的实施例中所介绍的内容,在此不再赘述)。
在在线检测阶段,可将上述离线训练阶段训练的基于VGAE的深度学习模型,用于在线检测新的调用链数据中的异常情况。在这个阶段,开发人员会提取特征并构建每个新调用链(待检测调用链)的TFM(特征矩阵)和邻接矩阵(可选的,也可以直接输入所提取的特征,本发明实施例对此不做限制),然后将它们输入预训练模型,计算异常得分,并根据训练集学到的分布来进行判断。由于调用链数据是实时生成的,因此相关技术中,手动设置一个固定的阈值来分类异常得分并不准确,本发明实施例使用p值方法来区分异常得分。可选的,可将p值设置为0.001,遵循统计假设检验中常用的标准。
在根因定位阶段,需要说明的是,当在线检测期间检测到异常调用链时,根因定位阶段的任务是识别导致系统故障的根微服务(服务),例如服务请求超时、等待队列溢出或接口依赖不正确。微服务的异常特征及其相应的调用路径可用于清楚地解释导致微服务异常的根本原因。
在根因定位阶段,根因定位算法利用了调用链特征矩阵的物理意义。在调用链特征矩阵中,每个维度代表一个执行(调用或调用单元),并包括等待时间和处理时间。当检测到异常调用链时,算法模型搜索训练集,以确定训练集中,与异常调用链的特征矩阵齐次(即具有相同的有效矩阵维度)的特征矩阵所对应的调用链样本,如果没有找到同质调用链特征矩阵(即与异常调用链的特征矩阵齐次的调用链特征矩阵),算法将确定异常调用链具有调用结构异常,如果找到,则可确定异常调用链的异常可能是某个微服务出现的问题,比如服务请求超时、队列溢出或接口依赖出现错误。
对于异常调用链中的每个有效维度,根因定位算法计算并存储来自训练集的等待时间和处理时间的平均值μ和标准偏差σ。由于等待时间和处理时间具有不同的分布,算法可应用z分数归一化策略来测量异常轨迹的轨迹特征矩阵中的值的异常(即异常调用链中的特征矩阵中的值的异常)。具体而言,对于跟踪特征矩阵中的值x,算法将异常严重程度计算为如下述公式所示:
其中x是等待时间或处理时间,N是训练集中调用链的数量,并且分别有一组μx和σx。在调用链特征矩阵中的这些异常值中,算法根据其严重性值选择前k个异常特征。最后,算法将异常特征映射到调用链特征矩阵中所对应的微服务,以识别出前k个异常微服务。
综上,本发明实施例使用基于GAN的算法,对于调用链中的噪声数据进行过滤,并基于过滤后的数据对VGAE模型进行训练,以解决调用链数据中混有噪声导致的模型训练不准确,进而导致调用链异常检测不准确的问题,提高无监督机器学习算法检测的准确性。
本发明实施例对于调用链的特征进行进一步的拆分,将调用链的时间特征分成等待时间和处理时间,使用VGAE对于调用链数据进行细粒度的检测,提高异常检测的准确性。使用去噪后的、且细粒度的调用链数据对VGAE模型训练,可以从调用链的结构中学习到潜在的表示,这些表示能够捕获微服务之间的交互模式、频率和其他重要特性,同时,VGAE可以同时考虑等待时间和处理时间,为每一个服务调用提供一个全面的特征表示,基于此,在进行调用链的异常检测时,可以更准确地辨别出那些偏离正常模式的调用链实例。
图11示出了根据本发明实施例所示的一种细粒度的调用链异常检测装置,装置110包括:
确定模块1101,用于确定待处理请求的调用链;
执行模块1102,用于提取调用链中,每一个调用单元的结构特征和时间特征;
其中,调用单元用于表示调用链中的第一服务调用调用链中的第二服务的调用过程;时间特征包括:处理时间和等待时间;处理时间为第二服务处理待处理请求的子请求所消耗的时间,等待时间为第一服务向第二服务发送子请求起始,到第二服务开始处理子请求为止所消耗的时间;结构特征用于描述第一服务与第二服务之间的调用顺序;第一服务为调用发起服务,第二服务为被调用的服务;
执行模块1102,还用于将结构特征和时间特征输入至训练好的变分图自动编码器VGAE模型中,进行调用链的异常检测。
在一种可能的实现方式中,结构特征和时间特征均能够以矩阵的形式进行表示;其中,结构特征以邻接矩阵的形式进行表示,邻接矩阵中的元素用于表示调用链的服务之间是否存在调用关系;时间特征以特征矩阵的形式表示,特征矩阵中的列分别用于存储等待时间和处理时间。
在一种可能的实现方式中,执行模块1102还用于,将结构特征和时间特征输入至训练好的VGAE模型中,得到训练好的VGAE模型的输出结果,其中,输出结果为调用链的异常得分;对异常得分进行P值化处理;根据P值化处理后所得到的P值与阈值的大小关系,确定调用链是否异常。
在一种可能的实现方式中,执行模块1102,还用于在将结构特征和时间特征输入至训练好的VGAE模型中,进行调用链的异常检测之后,若检测结果为调用链异常则执行根因定位算法,确定导致调用链异常的服务,其中包括:
搜索用于训练VGAE模型的训练集;
若在训练集中搜索到与特征矩阵齐次的齐次调用链样本,则基于齐次调用链样本的等待时间的标准值和标准偏差,以及齐次调用链样本的处理时间的标准值和标准偏差,对调用链的每个调用单元的等待时间和处理时间均进行z分数归一化处理,得到N个z分数值,其中,N的个数为调用单元的个数,N为正整数;
将N个z分数值按从高到低的顺序筛选出K个z分数值,其中,K为正整数,且K小于N;
将K个z分数值所对应的调用单元中的服务确定为导致调用链异常的服务。
图12示出了根据本发明实施例所示的一种模型的训练装置,装置120包括:
训练模块1201,用于基于训练集中的调用链样本对待训练的VGAE模型进行训练,得到训练好的VAGE模型;其中包括:
提取每一条调用链样本中,每一个调用单元的结构特征和时间特征;其中,调用单元用于表示调用链样本中的第三服务调用调用链样本中的第四服务的调用过程;时间特征包括:处理时间和等待时间;处理时间为第四服务处理自身所接收到的调用请求所消耗的时间,等待时间为第三服务向第四服务发送调用请求起始,到第四服务开始处理调用请求为止所消耗的时间;结构特征用于描述第三服务与第四服务之间的调用顺序;第三服务为调用发起服务,第四服务为被调用的服务;
基于结构特征和时间特征,对待训练的VGAE模型进行训练;
其中,待训练的VGAE模型的输入数据为结构特征和时间特征,待训练的VGAE模型的输出数据为重构的结构特征和重构的时间特征,训练目的为基于预设的损失函数,不断调整VGAE模型的内部参数,以最小化输出数据与输入数据之间的差异,并学习调用链样本的特征表示和结构表示。
在一种可能的实现方式中,结构特征和时间特征均能够以矩阵的形式进行表示。
在一种可能的实现方式中,训练模块1201,还用于对结构特征和时间特征进行去噪处理,基于去噪处理后的结构特征和时间特征,对待训练的VGAE模型进行训练;
其中,对结构特征和时间特征进行去噪处理包括:
将结构特征和时间特征输入预先训练好的生成对抗网络;
基于生成对抗网络对结构特征和时间特征进行去噪处理;
其中,生成对抗网络包括第一编码器和第二编码器,第一编码器和第二编码器共享生成器,第一编码器包括:生成器和第一判别器,第二编码器包括生成器和第二判别器,第一判别器用于输出去噪处理后的结构特征和时间特征。
在一种可能的实现方式中,训练模块1201,还用于在将结构特征和时间特征输入预先训练好的生成对抗网络之前,对生成对抗网络进行训练,其中,生成器用于接收训练集中的调用链样本的结构特征和时间特征,并输出潜在变量;第一判别器和第二判别器均用于接收潜在变量,并对潜在变量进行特征重构;第一判别器还用于将经自身所重构后的特征,重新输入到生成器中;生成器,还用于基于经第一判别器所重构后的特征,再次输出新的潜在变量;第一判别器的目标为基于预设的损失函数,最小化经自身重构后的特征,与调用链样本的结构特征和时间特征之间的差异,以对抗第二判别器;第二判别器的目标为基于预设的损失函数,最大化经第一判别器所重构的特征,与调用链样本的结构特征和时间特征之间的差异,以提高区分经第一判别器所重构的特征,与调用链样本的结构特征和时间特征的能力,以对抗第一判别器。
综上,本发明实施例使用基于GAN的算法,对于调用链中的噪声数据进行过滤,并基于过滤后的数据对VGAE模型进行训练,以解决调用链数据中混有噪声导致的模型训练不准确,进而导致调用链异常检测不准确的问题,提高无监督机器学习算法检测的准确性。
本发明实施例对于调用链的特征进行进一步的拆分,将调用链的时间特征分成等待时间和处理时间,使用VGAE对于调用链数据进行细粒度的检测,提高异常检测的准确性。使用去噪后的、且细粒度的调用链数据对VGAE模型训练,可以从调用链的结构中学习到潜在的表示,这些表示能够捕获微服务之间的交互模式、频率和其他重要特性,同时,VGAE可以同时考虑等待时间和处理时间,为每一个服务调用提供一个全面的特征表示,基于此,在进行调用链的异常检测时,可以更准确地辨别出那些偏离正常模式的调用链实例。
本发明实施例还提供一种电子设备130,如图13所示,包括:处理器1301、存储器1302及存储在存储器1302上并可在处理器1301上运行的程序,程序被处理器1301执行时实现如上述方法实施例的各个过程。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (12)
1.一种细粒度的调用链异常检测方法,其特征在于,所述方法包括:
确定待处理请求的调用链;
提取所述调用链中,每一个调用单元的结构特征和时间特征;
其中,所述调用单元用于表示所述调用链中的第一服务调用所述调用链中的第二服务的调用过程;所述时间特征包括:处理时间和等待时间;所述处理时间为所述第二服务处理所述待处理请求的子请求所消耗的时间,所述等待时间为所述第一服务向所述第二服务发送所述子请求起始,到所述第二服务开始处理所述子请求为止所消耗的时间;所述结构特征用于描述所述第一服务与所述第二服务之间的调用顺序;所述第一服务为调用发起服务,所述第二服务为被调用的服务;
将所述结构特征和所述时间特征输入至训练好的变分图自动编码器VGAE模型中,进行所述调用链的异常检测。
2.根据权利要求1所述的方法,其特征在于,
所述结构特征和所述时间特征均能够以矩阵的形式进行表示;
其中,所述结构特征以邻接矩阵的形式进行表示,所述邻接矩阵中的元素用于表示所述调用链的服务之间是否存在调用关系;
所述时间特征以特征矩阵的形式表示,所述特征矩阵中的列分别用于存储所述等待时间和所述处理时间。
3.根据权利要求1所述的方法,其特征在于,将所述结构特征和所述时间特征输入至所述训练好的VGAE模型中,进行所述调用链的异常检测包括:
将所述结构特征和所述时间特征输入至所述训练好的VGAE模型中,得到所述训练好的VGAE模型的输出结果,其中,所述输出结果为所述调用链的异常得分;
对所述异常得分进行P值化处理;
根据P值化处理后所得到的P值,确定所述调用链是否异常。
4.根据权利要求2所述的方法,其特征在于,在将所述结构特征和所述时间特征输入至所述训练好的VGAE模型中,进行所述调用链的异常检测之后,所述方法还包括:
若检测结果为所述调用链异常则执行根因定位算法,确定导致所述调用链异常的服务,其中包括:
搜索用于训练VGAE模型的训练集;
若在所述训练集中搜索到与所述特征矩阵齐次的齐次调用链样本,则基于所述齐次调用链样本的等待时间的标准值和标准偏差,以及所述齐次调用链样本的处理时间的标准值和标准偏差,对所述调用链的每个调用单元的等待时间和处理时间均进行z分数归一化处理,得到N个z分数值,其中,N的个数为调用单元的个数,N为正整数;
将所述N个z分数值按从高到低的顺序筛选出K个z分数值,其中,K为正整数,且K小于N;
将所述K个z分数值所对应的调用单元中的服务确定为导致所述调用链异常的服务。
5.一种模型的训练方法,其特征在于,所述方法包括:
基于训练集中的调用链样本对待训练的VGAE模型进行训练,得到训练好的VAGE模型;其中包括:
提取每一条所述调用链样本中,每一个调用单元的结构特征和时间特征;其中,所述调用单元用于表示所述调用链样本中的第三服务调用所述调用链样本中的第四服务的调用过程;所述时间特征包括:处理时间和等待时间;所述处理时间为所述第四服务处理自身所接收到的调用请求所消耗的时间,所述等待时间为所述第三服务向所述第四服务发送所述调用请求起始,到所述第四服务开始处理所述调用请求为止所消耗的时间;所述结构特征用于描述所述第三服务与所述第四服务之间的调用顺序;所述第三服务为调用发起服务,所述第四服务为被调用的服务;
基于所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练;
其中,所述待训练的VGAE模型的输入数据为所述结构特征和所述时间特征,所述待训练的VGAE模型的输出数据为重构的结构特征和重构的时间特征,训练目的为基于预设的损失函数,不断调整所述VGAE模型的内部参数,以最小化所述输出数据与所述输入数据之间的差异,并学习所述调用链样本的特征表示和结构表示。
6.根据权利要求5所述的方法,其特征在于,所述结构特征和所述时间特征均能够以矩阵的形式进行表示。
7.根据权利要求5所述的方法,其特征在于,基于所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练包括:
对所述结构特征和所述时间特征进行去噪处理,基于去噪处理后的所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练;
其中,对所述结构特征和所述时间特征进行去噪处理包括:
将所述结构特征和所述时间特征输入预先训练好的生成对抗网络;
基于所述生成对抗网络对所述结构特征和所述时间特征进行去噪处理;
其中,所述生成对抗网络包括第一编码器和第二编码器,所述第一编码器和所述第二编码器共享生成器,所述第一编码器包括:生成器和第一判别器,所述第二编码器包括生成器和第二判别器,所述第一判别器用于输出去噪处理后的所述结构特征和所述时间特征。
8.根据权利要求7所述的方法,其特征在于,在将所述结构特征和所述时间特征输入预先训练好的生成对抗网络之前,所述方法还包括:
对所述生成对抗网络进行训练,其中,所述生成器用于接收所述训练集中的调用链样本的结构特征和时间特征,并输出潜在变量;所述第一判别器和所述第二判别器均用于接收所述潜在变量,并对所述潜在变量进行特征重构;所述第一判别器还用于将经自身所重构后的特征,重新输入到所述生成器中;所述生成器,还用于基于经第一判别器所重构后的特征,再次输出新的潜在变量;所述第一判别器的目标为基于预设的损失函数,最小化经自身重构后的特征,与所述调用链样本的结构特征和时间特征之间的差异,以对抗第二判别器;所述第二判别器的目标为基于预设的损失函数,最大化经第一判别器所重构的特征,与所述调用链样本的结构特征和时间特征之间的差异,以提高区分经第一判别器所重构的特征,与调用链样本的结构特征和时间特征的能力,以对抗第一判别器。
9.一种细粒度的调用链异常检测装置,其特征在于,所述装置包括:
确定模块,用于确定待处理请求的调用链;
执行模块,用于提取所述调用链中,每一个调用单元的结构特征和时间特征;
其中,所述调用单元用于表示所述调用链中的第一服务调用所述调用链中的第二服务的调用过程;所述时间特征包括:处理时间和等待时间;所述处理时间为所述第二服务处理所述待处理请求的子请求所消耗的时间,所述等待时间为所述第一服务向所述第二服务发送所述子请求起始,到所述第二服务开始处理所述子请求为止所消耗的时间;所述结构特征用于描述所述第一服务与所述第二服务之间的调用顺序;所述第一服务为调用发起服务,所述第二服务为被调用的服务;
将所述结构特征和所述时间特征输入至训练好的变分图自动编码器VGAE模型中,进行所述调用链的异常检测。
10.一种模型的训练装置,其特征在于,所述装置包括:
训练模块,用于基于训练集中的调用链样本对待训练的VGAE模型进行训练,得到训练好的VAGE模型;其中包括:
提取每一条所述调用链样本中,每一个调用单元的结构特征和时间特征;其中,所述调用单元用于表示所述调用链样本中的第三服务调用所述调用链样本中的第四服务的调用过程;所述时间特征包括:处理时间和等待时间;所述处理时间为所述第四服务处理自身所接收到的调用请求所消耗的时间,所述等待时间为所述第三服务向所述第四服务发送所述调用请求起始,到所述第四服务开始处理所述调用请求为止所消耗的时间;所述结构特征用于描述所述第三服务与所述第四服务之间的调用顺序;所述第三服务为调用发起服务,所述第四服务为被调用的服务;
基于所述结构特征和所述时间特征,对所述待训练的VGAE模型进行训练;
其中,所述待训练的VGAE模型的输入数据为所述结构特征和所述时间特征,所述待训练的VGAE模型的输出数据为重构的结构特征和重构的时间特征,训练目的为基于预设的损失函数,不断调整所述VGAE模型的内部参数,以最小化所述输出数据与所述输入数据之间的差异,并学习所述调用链样本的特征表示和结构表示。
11.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至4中任一项所述的细粒度的调用链异常检测方法的步骤;或者,所述程序被所述处理器执行时实现如权利要求5至8中任一项所述的模型的训练方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的细粒度的调用链异常检测方法的步骤;或者,所述计算机程序被所述处理器执行时实现如权利要求5至8中任一项所述的模型的训练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311269033.1A CN117171623A (zh) | 2023-09-28 | 2023-09-28 | 细粒度的调用链异常检测方法、模型的训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311269033.1A CN117171623A (zh) | 2023-09-28 | 2023-09-28 | 细粒度的调用链异常检测方法、模型的训练方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117171623A true CN117171623A (zh) | 2023-12-05 |
Family
ID=88939523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311269033.1A Pending CN117171623A (zh) | 2023-09-28 | 2023-09-28 | 细粒度的调用链异常检测方法、模型的训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117171623A (zh) |
-
2023
- 2023-09-28 CN CN202311269033.1A patent/CN117171623A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111124840B (zh) | 业务运维中告警的预测方法、装置与电子设备 | |
Chen et al. | Continuous incident triage for large-scale online service systems | |
KR102061987B1 (ko) | 위험 평가 방법 및 시스템 | |
US11418029B2 (en) | Method for recognizing contingencies in a power supply network | |
CN113098723A (zh) | 一种故障根因定位方法、装置、存储介质及设备 | |
CN114297036A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN113687972B (zh) | 业务系统异常数据的处理方法、装置、设备及存储介质 | |
CN112527604A (zh) | 一种基于深度学习的运维检测方法、系统、电子设备及介质 | |
CN109656818B (zh) | 一种软件密集系统故障预测方法 | |
CN110851654A (zh) | 基于张量化数据降维的工业设备故障检测分类方法 | |
CN110956278A (zh) | 重新训练机器学习模型的方法和系统 | |
CN115309575A (zh) | 基于图卷积神经网络的微服务故障诊断方法、装置及设备 | |
CN115865483A (zh) | 一种基于机器学习的异常行为分析方法和装置 | |
Shajihan et al. | CNN based data anomaly detection using multi-channel imagery for structural health monitoring | |
CN111177135B (zh) | 一种基于界标的数据填补方法及装置 | |
CN115018012A (zh) | 一种高维度特性下的物联网时间序列异常检测方法及系统 | |
CN114528190B (zh) | 单指标异常的检测方法、装置、电子设备及可读存储介质 | |
CN109308225B (zh) | 一种虚拟机异常检测方法、装置、设备及存储介质 | |
CN111045902A (zh) | 服务器的压力测试方法及装置 | |
CN115730947A (zh) | 银行客户流失预测方法及装置 | |
US11665185B2 (en) | Method and apparatus to detect scripted network traffic | |
CN106227790A (zh) | 一种使用Apache Spark分类与解析海量日志的方法 | |
Samarakoon et al. | System abnormality detection in stock market complex trading systems using machine learning techniques | |
CN108733407A (zh) | 一种基于屏蔽数据的开源软件可靠性评估方法 | |
CN116909788A (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 |