CN113516174A - 调用链异常检测方法、计算机设备以及可读存储介质 - Google Patents

调用链异常检测方法、计算机设备以及可读存储介质 Download PDF

Info

Publication number
CN113516174A
CN113516174A CN202110622067.9A CN202110622067A CN113516174A CN 113516174 A CN113516174 A CN 113516174A CN 202110622067 A CN202110622067 A CN 202110622067A CN 113516174 A CN113516174 A CN 113516174A
Authority
CN
China
Prior art keywords
call chain
span
call
present application
abnormality
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
Application number
CN202110622067.9A
Other languages
English (en)
Other versions
CN113516174B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202110622067.9A priority Critical patent/CN113516174B/zh
Publication of CN113516174A publication Critical patent/CN113516174A/zh
Application granted granted Critical
Publication of CN113516174B publication Critical patent/CN113516174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • G06F18/24155Bayesian classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Abstract

本发明提出一种调用链路异常检测方法,涉及计算机技术领域,该方法包括以下步骤:步骤S10,将调用链处理成span组成的图;步骤S20,根据图嵌入的方法将所述调用链中的每一个span编码为高维向量;步骤S30,通过深度贝叶斯模型获取所述高维向量的正常模式的概率分布;步骤S40,依据获取的概率分布对待检测调用链的异常进行判断。采用上述方案的本发明能够同时检测结构异常和指标异常并且可以区分哪一种异常,除此之外,本发明还能充分利用完整的调用链数据处理复杂的模式和支持细粒度的根因定位,进而提高时间和空间效率。

Description

调用链异常检测方法、计算机设备以及可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种调用链异常检测方法、计算机设备以及可读存储介质。
背景技术
使用分布式架构,例如面向服务的架构(service-oriented architecture,SOA)或者微服务架构(microservice architecture),是现代构建软件系统的主流趋势。这类架构具有快速迭代,易于扩展和利于自动化的特点。
对于SOA或者微服务架构,整个系统被拆分为几十到几千个小的服务,每个服务可能运行在一个或者多个实例(instance)中。这些服务各自只聚焦一小部分功能,完成完整的用户请求需要互相之间通过HTTP API(application programming interface)等远程进程通信(remote process communication,RPC)方法实现。微服务架构相比SOA,其中的微服务解耦程度更高,每个微服务都相对独立地完成一小块功能。微服务架构中的服务数量一般远多于SOA中的服务数量。当用户发出一个请求时(例如点击页面上的“购买”按钮之后),系统的整个执行过程可能包含数十个到数百个对不同服务的同步的或者异步的调用(span)。
在系统完成一次业务调用的过程中,把服务之间的调用信息(时间、接口、层次、结果)打点到日志中,然后将所有的打点数据连接为一个树状链条就产生了一个调用链,也就是说整个执行过程(所有的span以及span之间的关系)被称为一个调用链(trace)。调用链可以跟踪系统把过程中产生的日志信息进行分析处理,将业务端到端的执行完整的调用过程进行还原,根据不同维度进行统计分析;从而标识出有异常的服务调用,快速分析定界到出异常的服务;同时可根据数据统计分析系统性能瓶颈。
当分布式系统发生故障时,由于服务之间复杂且动态的互相依赖关系,诊断与定位故障根因往往是非常困难的。静态统计分析不能捕获服务之间动态变化的依赖关系,因此往往无法找到故障的关键信息。另一方面,基于日志的分析由于日志的实现是很随意的,日志的数据也非常巨大,因此很难从海量信息中挖掘到故障的关键信息。而调用链日志是一类特殊的日志。分布式调用采集系统(例如Jaeger或者Zipkin)通过追踪每个用户请求在不同服务上的执行过程,能够确定每一条trace的具体结构和状态。通过调用链日志采集得到的trace数据,既包含了服务之间的动态依赖关系,也没有过多的冗余信息。因此trace分析对于高效地诊断分布式系统的故障是必要的。
现有的人工或者自动化的调用链分析方法,都依赖异常调用链的检测方法。人工调用链分析往往是对一条或者几条异常调用链进行可视化,基于专家经验人工判断故障的根因。自动化的调用链故障分析算法,例如MicroScope和TraceAnomaly,都是首先检测出所有的异常调用链,然后对每一条异常调用链应用根因定位算法。
只检测调用链中被调用到的每个服务的服务级指标(service-level objective,SLO,例如响应时间)是否存在异常。具体的方法为,统计历史数据中每个服务的SLO的分布,得到一个合适的SLO偏离的阈值。对于待检测的调用链,将每个服务的SLO与已得到的偏离阈值进行比较,从而判断每个服务是否发生SLO偏离(即异常)。
通过有监督机器学习算法,将调用链异常检测问题作为二分类(正常和异常两类)去解决。MEPFL首先将每一条调用链转化为预定义的一系列特征(例如每个服务的响应时间,调用链上的调用个数,对应的实例个数,是否有共享存储等等),然后将这些特征输入随机森林等成熟的机器学习算法进行分类。为了训练机器学习模型,MEPFL需要获取大量有是否异常的标注的训练数据。为此,MEPFL采用的方法是在系统上人为注入故障并收集数据,将受到注入的故障影响的调用链标注为异常,其他的为正常。
通过无监督深度学习方法,学习到调用链数据在正常状态下的概率分布模型,通过判断调用链是否服从正常状态的分布来判断调用链是否是异常的。TraceAnomaly首先将每个调用链拆解为多个调用路径(call path)。一个调用路径指的是从调用链的根节点到当前调用的路径,因此调用链中的每一个调用都唯一对应一个调用路径。TraceAnomaly将调用链编码为所有已知的调用路径在这条调用链上对应的响应时间(如果没有出现,那么就是0)。之后TraceAnomaly通过变分自动编码器(variational autoencoder,VAE)学习编码后得到的高维向量的分布。在检测时,不服从学习到的概率分布(重建概率低)的调用链就是异常的。
现有技术有以下缺点:1、不能检测结构异常;MicroScope没有考虑调用链结构异常。2、依赖有监督数据;MEPFL依赖有监督数据训练机器学习模型,但是机器学习模型的准确性依赖训练数据中每一类数据的完整程度。3、不能使用完整的调用链信息;MEPFL的编码过程中对丢弃同一个服务上除了最后一次之外的其他所有调用。4、不能处理调用链指标数据的复杂模式;分布式系统中的每个服务往往包含数个至数十个不同的接口(interface),每个接口提供的服务都略有不同。5、时间和空间开销大;TraceAnomaly采用的编码方式将调用链编码为非常稀疏(大部分维度取值为0)的向量,这限制了TraceAnomaly所能处理的调用链的个数,而在实际生产系统中,每天往往能产生千万至数十亿条调用链。6、无法支持细粒度的根因定位;调用链的异常检测的目的是为了后续的根因定位,如果调用链异常检测时只分析到调用链上的服务,那么后续定位就只支持定位到根因服务;如果调用链异常检测能分析到调用链上的服务以及每个服务的接口,那么后续定位就支持定位到根因接口,由于每个服务运行在多个实例上,根因还可能是服务的某一个实例。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种本发明的整体思路是将每条调用链看作是span组成的图(graph),解决了现有技术没有精确到span层次的弊端,而本发明可以精确到span层次。并且解决了现有技术的诸多问题,例如:不能检测结构异常、依赖有监督数据、不能使用完整的调用链信息、不能处理调用链指标数据的复杂模式、时间和空间开销大、无法支持细粒度的根因定位。
本发明的第二个目的在于提出一种计算机设备。
本申请的第三个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种调用链异常检测方法,该方法包括以下步骤:
步骤S10,将每条调用链处理成span组成的图;
步骤S20,根据图嵌入的方法将所述调用链中的每一个span编码为高维向量;
步骤S30,通过深度贝叶斯模型获取所述高维向量的正常模式的概率分布;
步骤S40,依据获取的概率分布对待检测调用链的异常进行判断。
本申请实施例的调用链异常检测方法本,发明的整体思路是将每条调用链看作是span组成的图(graph);之后通过图嵌入(graph embedding)方法,将调用链数据中的每一个span编码为高维向量;最后通过深度贝叶斯模型学习高维向量的正常模式的概率分布,之后通过新的调用链是否服从该正常概率分布来判断是否异常。
可选地,在本申请的一个实施例中,所述步骤S10包括以下步骤:
步骤S11,将每一个所述的span记作所述图中的一个节点,根据具有相同链路标识的span组成节点集合;
步骤S12,将上游的span到下游的边的集合记作边集合,其中,所述的span之间存在父子关系,所述上游的span是下游的父span;
步骤S13,根据所述的节点集合和所述的边集合构成所述的图。
可选地,在本申请的一个实施例中,所述调用链中存在指标异常,所述指标异常通过状态码和响应时间来判断,将所述的状态码和响应时间编码为所述的高维向量;其中,对所述的状态码进行one-hot编码;将所述的响应时间直接加入编码。
可选地,在本申请的一个实施例中,所述调用链中还存在结构异常,所述结构异常通过所述节点周围的节点的分布来判断;其中,所述节点的属性包括服务名称,操作名称和实例ID,将所述的服务名称,操作名称和实例ID通过hash编码的方式编码为所述的高维向量。
可选地,在本申请的一个实施例中,所述通过深度贝叶斯模型获取LN和LI来训练的目标函数,所述的深度贝叶斯模型的目标函数公式为:
Figure BDA0003099770750000041
其中,E指的是数学期望,这里z就是一个随机变量,物理含义是模型内部的一个隐变量,概率分布是qφ(z|xN),p(z)指的是z的先验分布,具体指的是对角高斯分布
Figure BDA0003099770750000042
这里pθ,qφ是两个可训练的神经网络,指标异常对应的编码记为xI,结构异常对应的编码记为xN,训练过程都采用经典的SGVB算法。
为达上述目的,本申请第二方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面实施例所述的方法。
为达上述目的,本申请第三方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请第一方面实施例所述的方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例中每条调用链处理成span组成的图。
图2为本申请实施例所提供的一种调用链异常检测方法的流程示意图。
图3为应用于本申请实施例中的深度贝叶斯模型图。
图4为本申请实施例的具体系统方框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请一种调用链异常检测方法。
调用链异常检测问题的输入指的是调用链数据;调用链异常检测问题的输出指的是每条调用链是否是异常的以及具体异常的部分;
图1为本申请实施例中每条调用链处理成span组成的图,具体而言,如图1所示,图中每一个方格是一个span,箭头表示span之间的触发关系,问题的目标输出就是这条调用链是否是异常的,以及具体哪些span或者服务是异常的。本申请实施例中调用链异常一般包括两类:
1、调用链结构异常,调用链结构异常指的是出现了非正常的调用链结构。例如由于发布时错误地修改了配置,导致服务A访问了服务B1而不是服务B2导致故障;
2、调用指标异常,调用指标异常指的是调用链结构是正常的,但是其中一些调用的某个指标存在异常,例如调用响应时间或者返回状态码。
本申请实施例通过首先需要对服务名称,操作名称和实例ID等字段进行编码。为了避免TraceAnomaly遇到的无法处理没有预先知道的结构的问题,这里采用hash编码,具体而言,本申请实施例对原始属性值通过sha256算法进行hash(hash对应的中文是哈希),将得到的结果看作一个K进制数,对每一个数位上的数字对M取模(此时每一个数位上的数字取值范围为0~M-1),取模得到的结果就是编码结果。该hash编码的过程等价于将输入随机分配到若干个桶内(桶的数量远大于可能的输入的数量,从而保证两个不同的输入被编码为相同的结果的可能性极低),然后将桶的编号表示为M进制数。
图2为本申请实施例一种调用链异常检测方法的流程示意图。
如图2所示,本申请实施例提供的一种调用链异常检测方法,包括以下步骤:
步骤S10,将调用链处理成span组成的图。
具体而言,首先本申请实施例将调用链处理成span组成的图(graph),图是一个数学概念,定义为节点和边的集合。调用链原始数据的格式为每一条调用对应一条包含多个字段的记录,如下表所示:
Figure BDA0003099770750000051
Figure BDA0003099770750000061
本申请实施例中所有具有相同trace ID的span是一个调用链,这些span组成节点集合V,每个span是一个节点。
Figure BDA0003099770750000062
(i是span的下标,n是span的个数)
对其中的每一条span,每个parent ID对应的span到当前span有一条边。这些边组成边集合E。
Figure BDA0003099770750000063
通过上述步骤,构成了本申请实施例中的图G=(V,E)。
步骤S20,根据图嵌入的方法将所述调用链中的每一个span编码为高维向量。
具体来说,本申请实施例对每个调用链对应的图进行编码,例如,对每一个span,也就是图上的每一个节点进行编码。
本申请实施例中调用链存在两类异常:结构异常和指标异常,即,本申请实施例分别对结构异常和指标异常相关的特征进行编码。
首先对指标异常的特征进行编码,指标异常和结构无关,因此只需要将span中的状态码和响应时间编码为一个向量即可。具体而言,状态码属于类别型属性,本申请实施例对其进行one-hot编码,例如状态码有A,B,C两种,那么A就编码为(1,0,0),B就编码为(0,1,0),C就编码为(0,0,1);响应时间本身就是数值类型,直接将响应时间加入编码,将指标异常对应的编码记为xI
然后对结构异常的特征进行编码,本申请实施例需要在节点的编码中考虑图的结构,即:考虑图的结构实际上就是考虑节点周围的节点的分布。本申请实施例主要通过服务名称、操作名称和实例ID等属性来区分不同节点,因此,本申请实施例需要考虑节点周围的其他节点的这些属性的分布。
也就是说,本申请实施例需要对服务名称,操作名称和实例ID等字段进行编码。为了避免TraceAnomaly遇到的无法处理没有预先知道的结构的问题,本申请实施例采用hash编码,具体而言,本申请实施例对原始属性值通过sha256算法进行hash,把得到的结果看作一个K进制数,对每一个数位上的数字对M取模(此时每一个数位上的数字取值范围为0~M-1),取模得到的结果为编码结果。上述hash编码的过程等价于将输入随机分配到若干个桶内(桶的数量远大于可能的输入的数量,从而保证两个不同的输入被编码为相同的结果的可能性极低),然后将桶的编号表示为M进制数。
具体度量该分布的方法,本发明采用了FEATHER算法,其中,FEATHER算法通过特征函数表示节点邻域特征的分布,特征函数是一个数学概念,可以用来唯一标识一个概率分布,类似概率分布的傅立叶变换。
对于本申请实施例中的图G上的节点u,其特征函数为
Figure BDA0003099770750000071
其中xw是节点w通过上一段的方法编码后的结果(服务名称,操作名称和实例ID等属性)。θ是特征函数的自变量。i是虚数单位。X指的是所有节点w的X_w拼接起来的矩阵。P(w|u)是u的每个邻居w对应的权重,计算该权重的方法是通过随机游走:
Figure BDA0003099770750000072
其中A是图的邻接矩阵,r是用户指定的超参数,一般为1或者2。公式中的j指的是当前的迭代次数,也就是说,P(v_{j+r}|v_{j})指的是在第j步位于u的情况下,第j+r步游走到w的概率。
步骤S30,通过深度贝叶斯模型获取所述高维向量的正常模式的概率分布。
对于得到的特征函数,本申请实施例在一系列不同的采样点(θ的不同取值上)进行计算,将采样得到的结果作为最终的编码结果。FEATHER算法通过用随机游走的方法编码了图的结构。通过使用特征函数,大大减少了标识较大的图需要的维度,从而减少了调用链异常检测算法的空间开销。同时FEATHER算法是一个无参数化的图嵌入方法,因此其不需要训练模型,节约了时间。本申请实施例将结构异常对应的编码记为xN
图3为应用于本申请实施例中的深度贝叶斯模型图。
将得到的span编码通过深度贝叶斯模型学习其概率分布,如图3所示,zN是隐变量,表示span的内在特征(即该span在做什么),通过zN足以知道该span对应的trace结构(xN)和它对应的调用指标(xI)应该是什么。也就是说,深度贝叶斯模型结构是通过zN生成xN和xI
步骤S40,依据获取的概率分布对待检测调用链的异常进行判断。
本申请实施例分别训练该模型的左半和右半部分。首先训练结构异常(右半部分),训练的目标函数为
Figure BDA0003099770750000081
这里pθ,qφ是两个可训练的神经网络。训练过程采用经典的SGVB算法。
对结构异常(右半部分)训练完成后,然后训练指标异常部分。训练的目标函数为,
Figure BDA0003099770750000082
同样采用SGVB算法。
在进行异常检测是针对每个span分别计算两个指标:
Figure BDA0003099770750000083
Figure BDA0003099770750000084
这两个指标的含义分别是x_N的概率(的对数),和x_I在给定x_N情况下的条件概率(的对数)。严格地说,由于是连续性随机变量,这里两个概率都是概率密度(probabilitydensity)。它们表达的含义就是调用的指标服从正常模式的概率。
如果logp(xN)小,说明当前span对应的trace结构在历史数据中出现的概率低,那么当前span存在结构异常。
如果logp(xI|xN)小,说明当前span的指标在给定结构的条件出现概率小,那么当前span存在指标异常。
图4为本申请具体系统方框图。
最后,通过图2流程图与图4系统框图的方式阐明技术方案的实现步骤,具体思路看说明书附图。
本发明具体发明点如下:第一,将每条调用链看作是span组成的图(graph)。和所有现有技术都不同,现有技术没有精确到span层次的。第二,将调用链数据中的每一个span编码为高维向量,和TraceAnomaly的编码方法的不同之处在于不需要预先知道所有可能的调用链结构,可以处理没遇见过的调用链结构;和MEPFL的编码方法的不同之处在于本申请实施例的编码是span层次的,保留了整个调用链的完整信息,没有丢弃任何调用。第三,最后通过深度贝叶斯模型学习高维向量的正常模式的概率分布,之后通过新的调用链是否服从该正常概率分布来判断是否异常,和TraceAnomaly一样都是无监督的方法,克服MEPFL中依赖有监督数据的问题;和TraceAnomaly一样都是深度学习方法,能够处理复杂的模式,克服MicroScope的简单统计方法的局限;和TraceAnomaly的不同在于本申请实施例通过一个结构比VAE更加复杂的贝叶斯模型实现对结构异常和指标异常的分别检测。
同时,通过本申请实施例能够同时检测结构异常和指标异常,并且能区分具体是哪一类的异常。在span的编码过程中,针对两类异常各自的特征分别进行编码。在检测模型中,设计了一个特征的贝叶斯模型,使得两类异常的异常程度能够被分别评估。
本申请实施例不依赖有标注的训练数据,是无监督的方法。通过无参数化的图嵌入方法对调用链数据进行编码,通过无监督的深度贝叶斯模型学习数据的正常模式从而检测异常,不需要依赖有监督数据。
本申请实施例可以充分利用完整的调用链数据。本申请的编码过程中充分利用了调用链数据中的每一个span和每一个字段,没有丢弃任何span。
本申请实施例可以处理调用链数据的复杂模式。本申请使用了深度贝叶斯模型来学习数据的正常模式,由于深度神经网络强大的拟合能力,相比简单的统计方法可以更精确地处理调用链数据的复杂模式。
本申请实施例的时间和空间效率高。一方面,本申请实施例采用的FEATHER编码方法通过特征函数大大压缩了表示邻域需要的维度数量,因此提高了编码的空间效率。另一方面,本申请实施例的方法可以直接处理没有见过的trace结构,因此当系统发生变更时,可以直接在已有模型上进行优化训练。相比与完全重新训练,耗时短得多,而且不需要再次读取旧数据。
本申请实施例可以支持细粒度的根因定位。本申请实施例将调用链看作是由span组成的图,而span就是调用链数据构成的最基本单位。本申请实施例的方法可以给出调用链中每一个span是否是异常的,所以可以支持定位到任何比span粒度更粗的根因,包括实例,接口或者服务等。
为了实现上述实施例,本发明还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述施例所述的方法。
为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例的方法。
在本发明说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (7)

1.一种调用链异常检测方法,其特征在于,包括以下步骤:
步骤S10,将每条调用链处理成span组成的图;
步骤S20,根据图嵌入的方法将所述调用链中的每一个span编码为高维向量;
步骤S30,通过深度贝叶斯模型获取所述高维向量的正常模式的概率分布;
步骤S40,依据获取的概率分布对待检测调用链的异常进行判断。
2.如权利要求1所述的方法,其特征在于,所述步骤S10包括以下步骤:
步骤S11,将每一个所述的span记作所述图中的一个节点,根据具有相同链路标识的span组成节点集合;
步骤S12,将上游的span到下游的边的集合记作边集合,其中,所述的span之间存在父子关系,所述上游的span是下游的父span;
步骤S13,根据所述的节点集合和所述的边集合构成所述的图。
3.如权利要求2所述的方法,其特征在于,所述调用链中存在指标异常,所述指标异常通过状态码和响应时间来判断,将所述的状态码和响应时间编码为所述的高维向量;
其中,将所述的状态码进行one-hot编码;将所述的响应时间直接加入编码。
4.如权利要求3所述的方法,其特征在于,所述调用链中还存在结构异常,所述结构异常通过所述节点周围的节点的分布来判断;其中,
所述节点的属性包括服务名称,操作名称和实例ID,将所述的服务名称,操作名称和实例ID通过hash编码的方式编码为所述的高维向量。
5.如权利要求1所述的方法,其特征在于,所述通过深度贝叶斯模型获取LN和LI来训练的目标函数,所述的深度贝叶斯模型的目标函数公式为:
Figure FDA0003099770740000011
Figure FDA0003099770740000012
其中,E指的是数学期望,这里z就是一个随机变量,物理含义是模型内部的一个隐变量,概率分布是qφ(z|xN),p(z)指的是z的先验分布,具体指的是对角高斯分布
Figure FDA0003099770740000013
这里pθ,qφ是两个可训练的神经网络,指标异常对应的编码记为xI,结构异常对应的编码记为xN,训练过程都采用经典的SGVB算法。
6.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5中任一所述的方法。
7.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN202110622067.9A 2021-06-03 2021-06-03 调用链异常检测方法、计算机设备以及可读存储介质 Active CN113516174B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110622067.9A CN113516174B (zh) 2021-06-03 2021-06-03 调用链异常检测方法、计算机设备以及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110622067.9A CN113516174B (zh) 2021-06-03 2021-06-03 调用链异常检测方法、计算机设备以及可读存储介质

Publications (2)

Publication Number Publication Date
CN113516174A true CN113516174A (zh) 2021-10-19
CN113516174B CN113516174B (zh) 2022-04-19

Family

ID=78065268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110622067.9A Active CN113516174B (zh) 2021-06-03 2021-06-03 调用链异常检测方法、计算机设备以及可读存储介质

Country Status (1)

Country Link
CN (1) CN113516174B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033477A (zh) * 2022-06-08 2022-09-09 山东省计算中心(国家超级计算济南中心) 一种面向大规模微服务的性能异常主动检测和处理方法及系统
CN115442252A (zh) * 2022-09-01 2022-12-06 北京优特捷信息技术有限公司 一种调用链构建方法、装置、电子设备及可读存储介质
CN115687406A (zh) * 2022-11-07 2023-02-03 北京优特捷信息技术有限公司 一种调用链数据的采样方法、装置、设备及存储介质
CN116471213A (zh) * 2023-06-09 2023-07-21 北京随信云链科技有限公司 链路追踪方法、链路追踪系统及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8544087B1 (en) * 2001-12-14 2013-09-24 The Trustess Of Columbia University In The City Of New York Methods of unsupervised anomaly detection using a geometric framework
CN108205486A (zh) * 2017-12-26 2018-06-26 上海中畅数据技术有限公司 一种基于机器学习的智能分布式调用链跟踪方法
CN109697456A (zh) * 2018-11-21 2019-04-30 华为技术有限公司 业务分析方法、装置、设备及存储介质
CN110730246A (zh) * 2019-10-23 2020-01-24 家乡互动(厦门)网络科技有限公司 一种微服务架构下的分布式链路跟踪方法
CN111190756A (zh) * 2019-11-18 2020-05-22 中山大学 一种基于调用链数据的根因定位算法
CN111341445A (zh) * 2020-02-05 2020-06-26 网宿科技股份有限公司 微服务调用链的健康检测方法和健康检测系统
CN112506799A (zh) * 2020-12-22 2021-03-16 北京百度网讯科技有限公司 业务异常定位方法及装置、电子设备、介质、产品
US20210103489A1 (en) * 2019-10-06 2021-04-08 Pdf Solutions, Inc. Anomalous Equipment Trace Detection and Classification
CN112817785A (zh) * 2019-11-15 2021-05-18 亚信科技(中国)有限公司 一种微服务系统的异常检测方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8544087B1 (en) * 2001-12-14 2013-09-24 The Trustess Of Columbia University In The City Of New York Methods of unsupervised anomaly detection using a geometric framework
CN108205486A (zh) * 2017-12-26 2018-06-26 上海中畅数据技术有限公司 一种基于机器学习的智能分布式调用链跟踪方法
CN109697456A (zh) * 2018-11-21 2019-04-30 华为技术有限公司 业务分析方法、装置、设备及存储介质
US20210103489A1 (en) * 2019-10-06 2021-04-08 Pdf Solutions, Inc. Anomalous Equipment Trace Detection and Classification
CN110730246A (zh) * 2019-10-23 2020-01-24 家乡互动(厦门)网络科技有限公司 一种微服务架构下的分布式链路跟踪方法
CN112817785A (zh) * 2019-11-15 2021-05-18 亚信科技(中国)有限公司 一种微服务系统的异常检测方法及装置
CN111190756A (zh) * 2019-11-18 2020-05-22 中山大学 一种基于调用链数据的根因定位算法
CN111341445A (zh) * 2020-02-05 2020-06-26 网宿科技股份有限公司 微服务调用链的健康检测方法和健康检测系统
CN112506799A (zh) * 2020-12-22 2021-03-16 北京百度网讯科技有限公司 业务异常定位方法及装置、电子设备、介质、产品

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PING LIU 等: "Unsupervised Detection of Microservice Trace Anomalies through Service-Level Deep Bayesian Networks", 《2020 IEEE 31ST INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE)》 *
ZEYAN LI 等: "Robust and Unsupervised KPI Anomaly Detection Based on Conditional Variational Autoencoder", 《2018 IEEE 37TH INTERNATIONAL PERFORMANCE COMPUTING AND COMMUNICATIONS CONFERENCE (IPCCC)》 *
熊游泳 等: "基于分布式跟踪的业务调用链监控技术在湖南电信的探索和应用", 《电脑知识与技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033477A (zh) * 2022-06-08 2022-09-09 山东省计算中心(国家超级计算济南中心) 一种面向大规模微服务的性能异常主动检测和处理方法及系统
CN115033477B (zh) * 2022-06-08 2023-06-27 山东省计算中心(国家超级计算济南中心) 一种面向大规模微服务的性能异常主动检测和处理方法及系统
CN115442252A (zh) * 2022-09-01 2022-12-06 北京优特捷信息技术有限公司 一种调用链构建方法、装置、电子设备及可读存储介质
CN115687406A (zh) * 2022-11-07 2023-02-03 北京优特捷信息技术有限公司 一种调用链数据的采样方法、装置、设备及存储介质
CN116471213A (zh) * 2023-06-09 2023-07-21 北京随信云链科技有限公司 链路追踪方法、链路追踪系统及介质
CN116471213B (zh) * 2023-06-09 2023-09-15 北京随信云链科技有限公司 链路追踪方法、链路追踪系统及介质

Also Published As

Publication number Publication date
CN113516174B (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
CN113516174B (zh) 调用链异常检测方法、计算机设备以及可读存储介质
US9542255B2 (en) Troubleshooting based on log similarity
CN108683530B (zh) 多维度数据的数据分析方法、装置及存储介质
US10373065B2 (en) Generating database cluster health alerts using machine learning
CN113935497A (zh) 智能运维故障处理方法、装置、设备及其存储介质
CN112416643A (zh) 无监督异常检测方法与装置
Lim et al. Identifying recurrent and unknown performance issues
US10581667B2 (en) Method and network node for localizing a fault causing performance degradation of a service
CN115269357A (zh) 一种基于调用链的微服务异常检测方法
CN113590451B (zh) 一种根因定位方法、运维服务器及存储介质
CN115514619B (zh) 告警收敛方法及系统
CN112416662A (zh) 多时间序列数据异常检测方法与装置
CN111884859B (zh) 一种网络故障诊断方法、装置及可读存储介质
CN112685207A (zh) 错误评估的方法、设备和计算机程序产品
CN114528175A (zh) 一种微服务应用系统根因定位方法、装置、介质及设备
Cai et al. A real-time trace-level root-cause diagnosis system in alibaba datacenters
CN115309575A (zh) 基于图卷积神经网络的微服务故障诊断方法、装置及设备
CN116520806A (zh) 一种工业系统智能故障诊断系统及其方法
CN110297765B (zh) 软件可靠性早期评估方法
Raj et al. Cloud infrastructure fault monitoring and prediction system using LSTM based predictive maintenance
CN117170915A (zh) 数据中心设备故障预测方法、装置和计算机设备
Mamoutova et al. Ontological approach to automated analysis of enterprise data storage systems log files
CN111935279B (zh) 基于区块链和大数据的物联网络维护方法及计算节点
Kakadia et al. Machine learning approaches for network resiliency optimization for service provider networks
Hu et al. TS-InvarNet: Anomaly detection and localization based on tempo-spatial KPI invariants in distributed services

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