CN115348159A - 基于自编码器和服务依赖图的微服务故障定位方法及装置 - Google Patents
基于自编码器和服务依赖图的微服务故障定位方法及装置 Download PDFInfo
- Publication number
- CN115348159A CN115348159A CN202210958306.2A CN202210958306A CN115348159A CN 115348159 A CN115348159 A CN 115348159A CN 202210958306 A CN202210958306 A CN 202210958306A CN 115348159 A CN115348159 A CN 115348159A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- graph
- node
- response time
- 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
- H04L41/0677—Localisation of faults
-
- 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
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- 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
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L41/065—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving logical or physical relationship, e.g. grouping and hierarchies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于自编码器和服务依赖图的微服务故障定位方法及装置,包括:实时监测与收集微服务***运行指标数据;基于自编码器模型判断微服务***是否存在异常;构建服务调用关系图以刻画故障传播途径;关联微服务的运行状态与***资源利用率从而计算服务调用关系图中每个节点的异常权重;通过改进的加权PageRank算法推断和定位引发异常的故障微服务。克服了现有微服务故障定位方法中需要人工设定各类监测指标阈值进行异常诊断的问题,提高故障定位的准确性。
Description
技术领域
本发明属于计算机软件故障定位分析技术领域,具体涉及一种基于自编码器和服务依赖图的微服务故障自动定位方法及装置。
背景技术
随着云计算、移动计算等不同计算方式的出现,微服务架构成为软件服务设计、开发和交付的最新趋势,每个模块作为一个小型但独立的***来实现和操作,通过一个定义良好的接口提供对其内部逻辑和数据的访问,这使得应用软件具有灵活性高、可扩展性好、自主权大等优点,越来越多的互联网企业采用微服务架构开发、部署分布式应用软件。微服务体系结构带来便捷开发的同时,由于其复杂的依赖关系以及频繁交付和部署,导致***面临更多发生故障的潜在威胁,***随时可能出现意想不到的故障,如并发异步错误、运行资源短缺错误等。由于微服务独立的架构设计和灵活的调用关系,当某一微服务模块发生故障时,相关模块组件也会因为依赖调用而发生故障,从而导致大规模的微服务级联故障,为了保证微服务的可靠运行和服务质量,开发人员必须快速修复***故障。面对微服务***的级联故障,如何准确定位故障根本原因显得尤为关键。
然而,在微服务体系架构中定位故障会遇到以下挑战:1)复杂的依赖关系。在传统架构中,***故障通常通过检查运行日志和利用性能监控工具对***性能进行分析来确定。但在微服务架构中,微服务的数量通常多达上百或者上千个,并且通常分布在多台服务主机上,服务之间的调用和依赖复杂且动态变化,一个服务的性能下降可能会广泛传播,导致多个服务出现异常,使得运行日志和监控工具难以满足诊断和故障排除需要。2)大量的监控指标。大规模服务之间的通信和调用产生了大量的指标,从中分析出微服务发生异常的每个指标阈值是非常耗时的,并且通过指标阈值来判断微服务是否异常往往是不准确的。3)频繁的微服务更新。为满足用户需求,需要经常更新微服务模块,在更新过程中,旧模块被新服务所替代,服务之间的依赖关系也会随着更新而变化,从而形成一个动态的体系架构,加剧了故障自动定位的困难。
发明内容
本发明所要解决的技术问题是针对上述现有技术的不足,提供一种基于自编码器和服务依赖图的微服务故障定位方法及装置,通过自编码器模型学习监测指标在微服务正常运行时的波动特征从而判断微服务的运行情况,克服了现有微服务故障定位方法中需要人工设定各类监测指标阈值进行异常诊断的问题,并结合服务器主机上各类资源的利用率监测指标对服务依赖图中的节点进行权重设定,提高了自动定位故障微服务的准确率。
为实现上述技术目的,本发明采取的技术方案为:
一种基于自编码器和服务依赖图的微服务故障定位方法,包括以下几个步骤:
步骤1:收集微服务***运行过程中服务器主机物理资源利用率的指标和微服务之间调用请求的响应时间的指标;
步骤2:调用所述的响应时间的监测序列作为训练数据训练自编码器模型,对所述的响应时间进行重构,通过计算响应时间指标数据重构误差判断微服务***是否存在异常;
步骤3:将每个微服务映射生成对应节点,解析每个微服务之间的通信数据捕捉微服务之间的调用关系,通过节点之间的调用关系构造节点之间的有向边,将所述的响应时间指标数据重构误差作为节点异常权重值,构建服务调用关系图;
步骤4:关联所述的响应时间指标数据重构误差与所在服务主机的物理资源利用率指标数据,计算服务调用关系图中每个图节点的异常权重;
步骤5:基于步骤4中服务调用关系图中每个图节点的异常权重的更新,使用加权PageRank算法推断和定位引发异常的故障微服务。
其中:
步骤1中,物理资源利用率指标包括运行微服务实例的物理机或虚拟机层面资源使用情况的指标,响应时间指标包括微服务***中微服务对其它微服务请求做出的应答花费时间长短的指标,所述的物理资源利用率指标和响应时间指标通过普罗米修斯工具进行实时监控和收集。
步骤2中:
其中g是激活函数,h为时间窗口w内响应时间监测指标收集次数,d为潜在特征表示的维度,是输入层与隐藏层的h行d列的权重矩阵,b是输入层的h维偏置向量,通过解码器将潜在特征表示重构为微服务vi的响应时间指标监测序列数据
在自编码器训练阶段使用微服务***正常运行时微服务vi的响应时间监测序列作为训练数据训练自编码器模型,经过多轮训练之后,收敛的自编码器模型学习到了正常响应时间序列数据的特征,自编码器模型对微服务vi正常运行时的响应时间监测值的重构值接近于监测值,对应重构误差较小并处于一个稳定范围内波动,计算此时重构误差的均值μ以及标准差σ,确定微服务vi的异常检测阈值αi=μ+3σ,在微服务vi运行状态实时检测过程中,重构误差则认为微服务vi发生异常。
步骤3中具体流程如下:
步骤3-1:将微服务***中的微服务集合记为V={v1,v2,…,vn},其中n表示微服务个数,对于任意vi∈V,映射生成图节点si,最终得到图节点集合S={s1,s2,…,sn};
步骤3-2:通过解析各个微服务之间的通信数据来捕捉微服务之间的调用关系,微服务vi向微服务vj发送服务请求,则构造一条从图节点si指向图节点sj的有向边zij,最终构成边集合Z={zij},1≤i,j≤n,相同服务请求只会构造一条有向边,生成未赋异常权重的服务调用关系图;
步骤3-3:将微服务vi的响应时间指标数据重构误差作为图节点si的初始异常权重遍历计算每个微服务的初始异常权重,得到图节点异常权重集合将异常权重集合F中的异常权重作为图节点si的异常权重,最终得到服务调用关系图G(S,Z,F)。
步骤4中,以服务调用关系图G(S,Z,F)为基础,根据服务调用关系图中相邻图节点间异常权重关系自动更新每个图节点的异常权重,对于任意图节点sj∈S,j∈{1,2,…,n},将包含指向图节点sj的有向边的相邻图节点构成集合AN(sj),将包含指向AN(sj)中任一图节点的有向边的相邻的图节点构成集合NAN(sj),
计算AN(sj)的平均异常权重aScore(sj):
其中aScore(sj)反映了AN(sj)整体上的异常程度,cScore(sj)表示NAN(sj)整体上的异常程度,结合aScore(sj)和cScore(sj)的特征计算图节点sj的异常权重acScore(sj):
acScore(sj)=aScore(sj)-cScore(sj) (6)
acScore(sj)的值越高,则图节点sj相邻图节点整体异常程度越高,AN(sj)的相邻图节点异常程度越低,则图节点sj对应的微服务vj是故障根因的可能性越高,通过皮尔逊相关函数衡量微服务vi在t时刻收集的历时一个时间窗口的响应时间序列重构误差和部署微服务vi的主机上各项物理资源监测指标序列数据的相关性:
其中,表示第r项物理资源监测指标在t时刻收集的历时一个时间窗口w的序列数据,表示的均值,r∈{1,2,…,k},k表示物理资源数量,表示微服务vi在e时刻的响应时间监测值的重构值,表示微服务vi在e时刻的响应时间监测值,表示重构误差的均值,微服务vi的运行状态通过得分高低来体现,结合acScore(si)与计算图节点si的最终异常权重AS(si):
步骤5中:
遍历计算每个微服务的异常权重完成服务调用关系图中所有图节点异常权重更新,采用加权PageRank算法在服务调用关系图G(S,Z,F)中“随机游走”,首先定义服务调用关系图图节点转移概率矩阵U:
其中uij代表从图节点sj随机游走至图节点si的概率,图节点异常权值的大小与游走概率相关,计算从图节点sj随机游走至图节点si的概率uij:
其中sj→si表示存在从图节点sj指向图节点si的有向边,linkOut(sj)表示图节点sj所指向的所有图节点的异常权重和,对于任意图节点si∈S,i={1,2,L,n},初始化PR分数为PR0(si)=1/n,将所有图节点的PR分数表示为向量R0:
R0=(PR0(s1),PR0(s2),…,PR0(sn))T (11)
在每轮随机游走过程中,迭代更新每个图节点的PR分数:
Rc=dU·Rc-1+(1-β)R0 (12)
其中,Rc表示第c轮迭代后所有图节点的PR分数向量,U∈Rn*n表示随机游走概率矩阵,β∈(0,1)表示索尼系数,通常β=0.85,经过迭代更新,每个图节点的PR分数会趋于收敛,图节点PR分数越高,所对应的微服务是故障根因的可能性越大,最终根据图节点PR分数从高到低的顺序输出故障根因微服务排名列表。
本发明还提供了使用上述基于自编码器和服务依赖图的微服务故障定位方法的装置,包括数据收集模块、异常检测模块和故障定位模块,所述的数据收集模块负责收集微服务***运行过程中服务器主机物理资源利用率指标和微服务之间调用请求的响应时间指标;所述的异常检测模块通过调用所述的响应时间的监测序列作为训练数据训练自编码器模型,对所述的响应时间进行重构,通过计算响应时间指标数据重构误差判断微服务***是否存在异常;所述的故障定位模块将每个微服务映射生成对应节点,解析每个微服务之间的通信数据捕捉微服务之间的调用关系,通过节点之间的调用关系构造节点之间的有向边,将所述的响应时间指标数据重构误差作为节点异常权重值,构建服务调用关系图,关联所述的响应时间指标数据重构误差与所在服务主机的物理资源利用率指标数据,计算服务调用关系图中每个图节点的异常权重,基于服务调用关系图中每个图节点的异常权重的更新,使用加权PageRank算法推断和定位引发异常的故障微服务。
本发明还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现上述基于自编码器和服务依赖图的微服务故障定位方法步骤。
本发明还提供了一种电子设备,包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述基于自编码器和服务依赖图的微服务故障定位方法步骤。
本发明还提供了一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述基于自编码器和服务依赖图的微服务故障定位方法步骤。
与现有技术相比,本发明所具有的优点:
1、本发明通过训练自编码器模型学习微服务运行状态与响应时间波动的关联关系,实时检测微服务运行状态,克服了现有微服务故障定位方法中需要人工设定各类监测指标阈值进行异常诊断的问题;通过解析微服务之间通信数据从而捕获微服务之间的调用关系,从而构造服务调用关系图以模拟故障传播路径,结合自编码器对微服务响应时间的重构误差与***资源的利用率更新调用关系图中节点的异常权重,最终基于加权PageRank算法自动定位故障微服,提高了故障定位的准确性。
2、本发明通过将微服务正常运行时的监测指标数据作为自编码器的输入,将其进行编码重构,相比传统异常检测方法可以捕捉微服务正常运行状态时的指标数据隐藏特征,从而提高实时异常检测的准确率。
3、本发明利用编码器对微服务监测指标的重构误差作为服务调用关系图节点的异常权重,由于重构无差反映了实时监测指标与正常监测指标的偏离程度,因此可以通过重构误差大小(即异常权重)反映微服务的异常程度。
4、本发明通过引入aScore分数、cScore分数以及acScore分数概念衡量微服务作为故障根因可能性大小,其中aScore(sj)反映了AN(sj)整体上的异常程度。cScore(sj)表示NAN(sj)整体上的异常程度。acScore(sj)综合了节点sj自身及其周围节点的异常信息,acScore(sj)越高,表明节点sj相邻节点整体异常程度高,而AN(sj)的相邻节点整体异常程度较低,那么节点sj对应的微服务vj是故障根因的可能性越高。
5、本发明通过皮尔逊相关函数计算响应时间的监测指标与各项物理资源监测指标序列数据之间的相关性来更新每个节点的异常权重,将资源利用率作为异常权重计算的一部分,增强微服务故障根因定位与资源利用率的相关性。
6、本发明通过改进PageRank算法,以服务调用关系图中相连节点异常权重为基础,设计加权PageRank算法,使得随机游走算法中的游走策略与每个节点和其相连节点的异常权重关系相关,使得游走异常权重越高的节点频率更高。
附图说明
图1为本发明实施例提供的一种基于自编码器和服务依赖图的微服务故障自动定位方法总体框架图;
图2为本发明实施例提供的一种基于自编码器和服务依赖图的微服务故障自动定位方法的流程图;
图3是本发明实施例提供的故障定位准确率对比实验结果图;
图4是本发明实施例提供的故障定位平均准确率对比实验结果图;
图5是本发明实施例提供的微服务故障定位装置的结构示意图;
图6是本发明实施例提供的微服务故障定位装置的另一结构示意图。
具体实施方式
以下结合附图对本发明的实施例作进一步详细描述。
本发明提出了一种基于自编码器和服务依赖图的微服务故障自动定位方法及装置,其总体框架如图1所示,主要包括3个模块。数据收集模块负责收集应用程序指标和***级别指标数据,其中应用程序指标用于检测应用性能问题,***级别指标用于后续服务调用关系图中节点权重更新。异常检测模块通过自编码器对应用程序指标数据进行编码重构,检测微服务模块是否发生异常。一旦检测到***异常,故障定位模块通过解析微服务之间的调用关系构造服务调用关系图以分析异常传播路径,利用***资源利用率与微服务性能的相关性计算服务调用关系图中每个微服务节点的异常权重,最终利用加权PageRank算法定位故障根因微服务模块。
参见图2,图2是本发明实施例提供的一种基于自编码器和服务依赖图的微服务故障自动定位方法的流程图,具体的,本发明方法包括:
步骤1:通过普罗米修斯工具实时监控和收集微服务***运行过程中物理资源利用率指标和微服务之间调用的响应时间指标。其中物理资源利用率指标是反映运行微服务实例的物理机或虚拟机层面资源使用情况的一类指标,例如CPU利用率、内存使用率等;响应时间指标是反映微服务***中微服务对其它微服务请求作出的应答所花费时间长短的指标。
本发明将k项物理资源监测指标表示为M={m1,m2,…,mk},将任意监测指标mr的持续监测值表示为时间序列数据其中mr∈M,r∈{1,2,…k}。为了建模指标mr监测值的变化关系,在监测指标收集时刻t,通过一个时间长度为h的滑动窗口w截取指标mr的监测序列值,表示为其中表示指标mr在t时刻的监测值。将k项物理资源监测指标在t时刻收集的包含一个时间窗口w的监测序列数据构成监测指标数据矩阵
在拥有n个微服务模块的微服务***V={v1,v2,…,vn}中,对于任意微服务vi∈V,在t时刻收集的包含一个时间窗口w的响应时间监测序列数据表示为其中表示微服务vi在t时刻响应时间的监测值。将n个微服务在t时刻收集的历时一个时间窗口w的响应时间监测序列数据构成矩阵
其中g是激活函数,h为时间窗口w内响应时间监测指标收集次数,d为潜在特征表示的维度,是输入层与隐藏层的h行d列的权重矩阵,b是输入层的h维偏置向量。接着通过解码器将潜在特征表示重构为微服务模块vi的响应时间指标监测序列数据
在自编码器训练阶段使用微服务***正常运行时微服务vi的响应时间监测序列作为训练数据训练自编码器模型。经过多轮训练之后,收敛的自编码器模型学习到了正常响应时间序列数据的特征。因此自编码器模型对微服务vi正常运行时的响应时间监测值的重构值会接近于监测值,对应重构误差较小并处于一个稳定范围内波动。通过计算此时重构误差的均值μ以及标准差σ,确定微服务模块ve的异常检测阈值αi=μ+3σ。在微服务vi运行状态实时检测过程中,若发现重构误差则认为微服务vi发生异常。
步骤3:中将每个微服务映射生成对应节点,并通过解析各个微服务之间的通信数据来捕捉微服务之间的调用关系,构造节点之间的有向边,将每个微服务响应时间指标数据的重构误差作为节点异常权重值,完成服务调用关系图的构建,具体流程如下:
步骤3-1:将微服务***中的微服务集合记为V={v1,v2,…,vn},其中n表示微服务个数。对于任意vi∈V,映射生成图节点si,最终得到图节点集合S={s1,s2,…,sn};
步骤3-2:通过解析各个微服务之间的通信数据来捕捉微服务之间的调用关系,若微服务vi向微服务vj发送服务请求,则构造一条从si指向sj的有向边zij,构成边集合Z={zij},1≤i,j≤n,相同服务请求只会构造一条有向边;
步骤4:随机游走算法在每个节点之间“游走”策略依赖于节点之间的游走概率,而游走概率又和节点的异常权重相关联,因此服务调用关系图G(S,Z,F)中每个图节点的异常权重设定对于随机游走算法定位故障准确性显得尤为关键。本发明通过服务调用关系图中图节点之间的关系以及微服务运行状态和主机资源利用率之间的关系更新图节点异常权重,使得随机游走算法中异常程度更高的图节点得到更大的“游走”概率,增强故障定位的可解释性。以服务调用关系图G(S,Z,F)为基础,根据服务调用关系图中相邻图节点间异常权重关系自动更新每个图节点的异常权重。对于任意图节点sj∈S,j∈{1,2,…,n},将包含指向图节点sj的有向边的相邻图节点构成集合AN(sj),将包含指向AN(sj)中任一图节点的有向边的相邻的图节点构成集合NAN(sj)。
接着计算AN(sj)的平均异常权重aScore(sj):
其中aScore(sj)反映了AN(sj)整体上的异常程度。cScore(sj)表示NAN(sj)整体上的异常程度。结合aScore(sj)和cScore(sj)的特征计算节点sj的异常权重acScore(sj):
acScore(sj)=aScore(sj)-cScore(sj) (18)
显然,acScore(sj)综合了图节点sj自身及其周围图节点的异常信息,acScore(sj)的值越高,表明图节点sj相邻图节点整体异常程度高,而AN(sj)的相邻图节点整体异常程度较低,那么图节点sj对应的微服务vj是故障根因的可能性越高。此外,微服务的响应时间与该微服务部署所在主机性能指标变化相关,本发明选择皮尔逊相关函数来衡量微服务vi在t时刻收集的历时一个时间窗口的响应时间序列重构误差和部署微服务vi的主机上各项物理资源监测指标序列数据的相关性:
其中,表示第r项物理资源监测指标在t时刻收集的历时一个时间窗口w的序列数据,表示的均值,r∈{1,2,…,k},表示微服务vi在e时刻的响应时间监测值的重构值,表示微服务vi在e时刻的响应时间监测值,表示重构误差的均值,微服务vi的运行状态可以通过得分高低来体现,因此本发明结合acScore(si)与计算图节点si的最终异常权重AS(si):
步骤5:遍历计算每个微服务节点的异常权重完成服务调用关系图中所有图节点异常权重更新,接着采用加权PageRank算法在服务调用关系图G(S,Z,F)中“随机游走”,利用图节点异常权重与相连图节点异常权重的关系计算游走概率,提升定位故障根因定位准确性。加权PageRank算法的游走策略是基于每个图节点访问其它图节点的概率,因此首先需要定义服务调用关系图节点转移概率矩阵U:
其中uij代表从图节点sj随机游走至图节点si的概率。图节点异常权值的大小与游走概率相关,计算从图节点sj随机游走至图节点si的概率uij:
其中sj→si表示存在从图节点sj指向图节点si的有向边,linkOut(sj)表示图节点sj所指向的图节点的异常权重和。对于任意图节点si∈S,i={1,2,L,n},初始化PR分数为PR0(si)=1/n将所有图节点的PR分数表示为向量R0:
R0=(PR0(s1),PR0(s2),…,PR0(sn))T(23)
在每轮随机游走过程中,迭代更新每个图节点的PR分数:
Rc=dU·Rc-1+(1-β)R0 (24)
其中Rc表示第c轮迭代后所有图节点的PR分数向量,U∈Rn*n表示随机游走概率矩阵,β∈(0,1)表示索尼系数,通常β=0.85。经不断迭代更新,每个图节点的PR分数会趋于收敛,此时图节点PR分数越高,所对应的微服务模块是故障根因的可能性越大,最终根据图节点PR分数从高到低的顺序输出故障根因微服务排名列表。
为了评估本发明的有效性,本发明采用评估指标AC@K和MAP作为衡量故障定位效果的指标,AC@K表示对根因预测输出的前K个微服务中包含故障根因微服务的概率。AC@K分数越高,代表模型定位故障更准确;MAP量化故障定位平均准确率。
表1展示了注入网络延迟(Latency)、CPU资源短缺(CPU Hog)、内存泄漏(MemoryLeak)等故障情况下,本发明在Sock-shop中不同微服务上的故障定位准确率。从表1中可以看出,MicroEncoder在每个微服务上的故障定位平均准确率(MAP)达到了85%以上。
表1
为了评估本发明的有效性,将本发明与其它先进方法进行了比较,包括Randomselection、MicroRCA、AAMR等方法。首先,通过测试对比方法和本发明在网络延迟(Latency)、CPU资源短缺(CPU Hog)、内存泄漏(Memory Leak)三种故障类型下故障定位的准确率。实验结果如图3所示,在注入三种故障以及K取不同值的情况下,本发明的故障定位准确率均高于其他方法,表明本发明在故障定位方面准确率方面确实得到了有效提升。
进一步,通过计算故障定位评价指标MAP衡量本方法故障定位平均准确率,实验结果如图4所示。从图4中可以看出,本发明对网络延迟(Latency)的故障定位平均精度为92%,对CPU资源短缺(CPU Hog)故障定位的平均精度为86.4%,对内存泄漏故障(MemoryLeak)定位的平均精度为91.2%,优于对比方法。
本发明还提供了上述基于自编码器和服务依赖图的微服务故障定位方法的装置,包括数据收集模块、异常检测模块和故障定位模块,所述的数据收集模块负责收集微服务物理资源指标与响应时间指标,其中响应时间指标用于检测微服务之间调用的响应速度,物理资源指标用于服务调用关系图中图节点异常权重更新;所述的异常检测模块通过自编码器对数据收集模块的数据进行编码重构,检测微服务是否发生异常;所述的故障定位模块通过解析微服务之间的调用关系构造服务调用关系图分析异常传播路径,利用物理资源指标与微服务响应时间指标计算服务调用关系图中每个微服务的异常权重,利用加权PageRank算法定位故障根因微服务的位置。
参见图5,其展示了本发明一个实例性实施例提供的基于自编码器和服务依赖图的微服务故障定位装置的结构示意图,本实施例提供的装置包括数据收集单元301、异常检测单元302和故障定位单元303。所述的数据收集单元301负责收集微服务物理资源指标与响应时间指标,其中响应时间指标用于检测微服务之间调用的响应速度,物理资源指标用于服务调用关系图中图节点异常权重更新;所述的异常检测单元302通过自编码器对数据收集模块的数据进行编码重构,检测微服务是否发生异常;所述的故障定位单元303。通过解析微服务之间的调用关系构造服务调用关系图分析异常传播路径,利用物理资源指标与微服务响应时间指标计算服务调用关系图中每个微服务的异常权重,利用加权PageRank算法定位故障根因。
参见图6,其展示了本申请实施例提供的一种基于自编码器和服务依赖图的微服务故障定位装置的结构示意图,以下简称装置6,装置6可以集成于前述的电子设备,如图6所示,该装置包括:存储器602、处理器601、输入装置603、输出装置604和通信接口。存储器602可以是独立的物理单元,与处理器601、输入装置603和输出装置604可以通过总线连接存储器602、处理器601、收发器603也可以集成在一起,通过硬件实现等。存储器602用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器601调用该程序,执行以上方法实施例的操作。输入装置602包括但不限于键盘、鼠标;输出装置包括但不限于显示屏。通信接口用于收发各种类型的消息,通信接口包括但不限于无线接口或有线接口。
可选地,当上述实施例的分布式任务调度方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。处理器可以是中央处理器(centralprocessing unit,CPU),网络处理器(ne twork processor,NP)或者CPU和NP的组合。
处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logicdevice,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logicdevice,CPLD),现场可编程逻辑门阵列(field-progr ammable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。存储器可以包括易失性存储器(volatilememory),例如存取存储器(randomaccess memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (10)
1.基于自编码器和服务依赖图的微服务故障定位方法,其特征在于,包括以下几个步骤:
步骤1:收集微服务***运行过程中服务器主机物理资源利用率的指标和微服务之间调用请求的响应时间的指标;
步骤2:调用所述的响应时间的监测序列作为训练数据训练自编码器模型,对所述的响应时间进行重构,通过计算响应时间指标数据重构误差判断微服务***是否存在异常;
步骤3:将每个微服务映射生成对应节点,解析每个微服务之间的通信数据捕捉微服务之间的调用关系,通过节点之间的调用关系构造节点之间的有向边,将所述的响应时间指标数据重构误差作为节点异常权重值,构建服务调用关系图;
步骤4:关联所述的响应时间指标数据重构误差与所在服务主机的物理资源利用率指标数据,计算服务调用关系图中每个图节点的异常权重;
步骤5:基于步骤4中服务调用关系图中每个图节点的异常权重的更新,使用加权PageRank算法推断和定位引发异常的故障微服务。
2.根据权利要求1所述的基于自编码器和服务依赖图的微服务故障定位方法,其特征在于,所述的步骤1中,物理资源利用率指标包括运行微服务实例的物理机或虚拟机层面资源使用情况的指标,响应时间指标包括微服务***中微服务对其它微服务请求做出的应答花费时间长短的指标,所述的物理资源利用率指标和响应时间指标通过普罗米修斯工具进行实时监控和收集。
3.根据权利要求1所述的基于自编码器和服务依赖图的微服务故障定位方法,其特征在于,所述的步骤2中:
其中g是激活函数,h为时间窗口w内响应时间监测指标收集次数,d为潜在特征表示的维度,是输入层与隐藏层的h行d列的权重矩阵,b是输入层的h维偏置向量,通过解码器将潜在特征表示重构为微服务vi的响应时间指标监测序列数据
4.根据权利要求1所述的基于自编码器和服务依赖图的微服务故障定位方法,其特征在于,所述的步骤3中
具体流程如下:
步骤3-1:将微服务***中的微服务集合记为V={v1,v2,…,vn},其中n表示微服务个数,对于任意vi∈V,映射生成图节点si,最终得到图节点集合S={s1,s2,…,sn};
步骤3-2:通过解析各个微服务之间的通信数据来捕捉微服务之间的调用关系,微服务vi向微服务vj发送服务请求,则构造一条从图节点si指向图节点sj的有向边zij,最终构成边集合Z={zij},1≤i,j≤n,相同服务请求只会构造一条有向边,生成未赋异常权重的服务调用关系图;
5.根据权利要求1所述的基于自编码器和服务依赖图的微服务故障定位方法,其特征在于,所述的步骤4中,以服务调用关系图G(S,Z,F)为基础,根据服务调用关系图中相邻图节点间异常权重关系自动更新每个图节点的异常权重,对于任意图节点sj∈S,j∈{1,2,…,n},将包含指向图节点sj的有向边的相邻图节点构成集合AN(sj),将包含指向AN(sj)中任一图节点的有向边的相邻的图节点构成集合NAN(sj),
计算AN(sj)的平均异常权重aScore(sj):
其中aScore(sj)反映了AN(sj)整体上的异常程度,cScore(sj)表示NAN(sj)整体上的异常程度,结合aScore(sj)和cScore(sj)的特征计算图节点sj的异常权重acScore(sj):
acScore(sj)=aScore(sj)-cScore(sj) (6)
acScore(sj)的值越高,则图节点sj相邻图节点整体异常程度越高,AN(sj)的相邻图节点异常程度越低,则图节点sj对应的微服务vj是故障根因的可能性越高,通过皮尔逊相关函数衡量微服务vi在t时刻收集的历时一个时间窗口的响应时间序列重构误差和部署微服务vi的主机上各项物理资源监测指标序列数据的相关性:
其中,表示第r项物理资源监测指标在t时刻收集的历时一个时间窗口w的序列数据,表示的均值,r∈{1,2,…,k},k表示物理资源数量,表示微服务vi在e时刻的响应时间监测值的重构值,表示微服务vi在e时刻的响应时间监测值,表示重构误差的均值,微服务vi的运行状态通过得分高低来体现,结合acScore(si)与计算图节点si的最终异常权重AS(si):
6.根据权利要求1所述的基于自编码器和服务依赖图的微服务故障定位方法,其特征在于,所述的步骤5中:
遍历计算每个微服务的异常权重完成服务调用关系图中所有图节点异常权重更新,采用加权PageRank算法在服务调用关系图G(S,Z,F)中“随机游走”,首先定义服务调用关系图图节点转移概率矩阵U:
其中uij代表从图节点sj随机游走至图节点si的概率,图节点异常权值的大小与游走概率相关,计算从图节点sj随机游走至图节点si的概率uij:
其中sj→si表示存在从图节点sj指向图节点si的有向边,linkOut(sj)表示图节点sj所指向的所有图节点的异常权重和,对于任意图节点si∈S,i={1,2,L,n},初始化PR分数为PR0(si)=1/n,将所有图节点的PR分数表示为向量R0:
R0=(PR0(s1),PR0(s2),…,PR0(sn))T (11)
在每轮随机游走过程中,迭代更新每个图节点的PR分数:
Rc=dl·Rc-1+(1-β)R0 (12)
其中,Rc表示第c轮迭代后所有图节点的PR分数向量,U∈Rn*n表示随机游走概率矩阵,β∈(0,1)表示索尼系数,通常β=0.85,经过迭代更新,每个图节点的PR分数会趋于收敛,图节点PR分数越高,所对应的微服务是故障根因的可能性越大,最终根据图节点PR分数从高到低的顺序输出故障根因微服务排名列表。
7.使用如权利要求1-6所述的基于自编码器和服务依赖图的微服务故障定位方法的装置,包括数据收集模块、异常检测模块和故障定位模块,所述的数据收集模块负责收集微服务***运行过程中服务器主机物理资源利用率指标和微服务之间调用请求的响应时间指标;所述的异常检测模块通过调用所述的响应时间的监测序列作为训练数据训练自编码器模型,对所述的响应时间进行重构,通过计算响应时间指标数据重构误差判断微服务***是否存在异常;所述的故障定位模块将每个微服务映射生成对应节点,解析每个微服务之间的通信数据捕捉微服务之间的调用关系,通过节点之间的调用关系构造节点之间的有向边,将所述的响应时间指标数据重构误差作为节点异常权重值,构建服务调用关系图,关联所述的响应时间指标数据重构误差与所在服务主机的物理资源利用率指标数据,计算服务调用关系图中每个图节点的异常权重,基于服务调用关系图中每个图节点的异常权重的更新,使用加权PageRank算法推断和定位引发异常的故障微服务。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-6任意一项所述的方法步骤。
9.一种电子设备,其特征在于,所述电子设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1-6任意一项所述的方法步骤。
10.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1-6任意一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210958306.2A CN115348159B (zh) | 2022-08-09 | 2022-08-09 | 基于自编码器和服务依赖图的微服务故障定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210958306.2A CN115348159B (zh) | 2022-08-09 | 2022-08-09 | 基于自编码器和服务依赖图的微服务故障定位方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115348159A true CN115348159A (zh) | 2022-11-15 |
CN115348159B CN115348159B (zh) | 2023-06-27 |
Family
ID=83952520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210958306.2A Active CN115348159B (zh) | 2022-08-09 | 2022-08-09 | 基于自编码器和服务依赖图的微服务故障定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115348159B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610906A (zh) * | 2023-04-11 | 2023-08-18 | 深圳润世华软件和信息技术服务有限公司 | 设备故障诊断方法、装置、计算机设备及其存储介质 |
CN116662060A (zh) * | 2023-07-31 | 2023-08-29 | 深圳市创银科技股份有限公司 | 传感器信号采集处理***的数据处理方法及*** |
CN116775364A (zh) * | 2023-08-16 | 2023-09-19 | 中国电子信息产业集团有限公司第六研究所 | 一种应用服务健康管理方法、装置、电子设备及存储介质 |
US20230333967A1 (en) * | 2022-04-15 | 2023-10-19 | Dell Products L.P. | Method and system for performing root cause analysis associated with service impairments in a distributed multi-tiered computing environment |
CN117170304A (zh) * | 2023-11-03 | 2023-12-05 | 傲拓科技股份有限公司 | 一种基于工业物联网的plc远程监测控制方法及*** |
US11953978B2 (en) | 2022-04-15 | 2024-04-09 | Dell Products L.P. | Method and system for performing service remediation in a distributed multi-tiered computing environment |
CN117909313A (zh) * | 2024-03-19 | 2024-04-19 | 成都融见软件科技有限公司 | 设计代码数据的分布式存储方法、电子设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210073656A1 (en) * | 2019-09-05 | 2021-03-11 | International Business Machines Corporation | Enhanced bottleneck analysis at an early stage in a microservice system |
CN112698975A (zh) * | 2020-12-14 | 2021-04-23 | 北京大学 | 一种微服务架构信息***的故障根因定位方法及*** |
CN113014421A (zh) * | 2021-02-08 | 2021-06-22 | 武汉大学 | 一种面向云原生***的微服务根因定位方法 |
EP3951598A1 (en) * | 2020-08-07 | 2022-02-09 | NEC Laboratories Europe GmbH | Methods and systems for detecting anomalies in cloud services based on mining time-evolving graphs |
-
2022
- 2022-08-09 CN CN202210958306.2A patent/CN115348159B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210073656A1 (en) * | 2019-09-05 | 2021-03-11 | International Business Machines Corporation | Enhanced bottleneck analysis at an early stage in a microservice system |
EP3951598A1 (en) * | 2020-08-07 | 2022-02-09 | NEC Laboratories Europe GmbH | Methods and systems for detecting anomalies in cloud services based on mining time-evolving graphs |
CN112698975A (zh) * | 2020-12-14 | 2021-04-23 | 北京大学 | 一种微服务架构信息***的故障根因定位方法及*** |
CN113014421A (zh) * | 2021-02-08 | 2021-06-22 | 武汉大学 | 一种面向云原生***的微服务根因定位方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230333967A1 (en) * | 2022-04-15 | 2023-10-19 | Dell Products L.P. | Method and system for performing root cause analysis associated with service impairments in a distributed multi-tiered computing environment |
US11994975B2 (en) * | 2022-04-15 | 2024-05-28 | Dell Products L.P. | Method and system for performing root cause analysis associated with service impairments in a distributed multi-tiered computing environment |
US11953978B2 (en) | 2022-04-15 | 2024-04-09 | Dell Products L.P. | Method and system for performing service remediation in a distributed multi-tiered computing environment |
CN116610906B (zh) * | 2023-04-11 | 2024-05-14 | 深圳润世华软件和信息技术服务有限公司 | 设备故障诊断方法、装置、计算机设备及其存储介质 |
CN116610906A (zh) * | 2023-04-11 | 2023-08-18 | 深圳润世华软件和信息技术服务有限公司 | 设备故障诊断方法、装置、计算机设备及其存储介质 |
CN116662060A (zh) * | 2023-07-31 | 2023-08-29 | 深圳市创银科技股份有限公司 | 传感器信号采集处理***的数据处理方法及*** |
CN116662060B (zh) * | 2023-07-31 | 2024-02-06 | 深圳市创银科技股份有限公司 | 传感器信号采集处理***的数据处理方法及*** |
CN116775364A (zh) * | 2023-08-16 | 2023-09-19 | 中国电子信息产业集团有限公司第六研究所 | 一种应用服务健康管理方法、装置、电子设备及存储介质 |
CN116775364B (zh) * | 2023-08-16 | 2023-12-05 | 中国电子信息产业集团有限公司第六研究所 | 一种应用服务健康管理方法、装置、电子设备及存储介质 |
CN117170304B (zh) * | 2023-11-03 | 2024-01-05 | 傲拓科技股份有限公司 | 一种基于工业物联网的plc远程监测控制方法及*** |
CN117170304A (zh) * | 2023-11-03 | 2023-12-05 | 傲拓科技股份有限公司 | 一种基于工业物联网的plc远程监测控制方法及*** |
CN117909313B (zh) * | 2024-03-19 | 2024-05-14 | 成都融见软件科技有限公司 | 设计代码数据的分布式存储方法、电子设备和介质 |
CN117909313A (zh) * | 2024-03-19 | 2024-04-19 | 成都融见软件科技有限公司 | 设计代码数据的分布式存储方法、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115348159B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115348159B (zh) | 基于自编码器和服务依赖图的微服务故障定位方法及装置 | |
Chen et al. | Outage prediction and diagnosis for cloud service systems | |
CN105283848B (zh) | 用分布式目标来进行应用跟踪 | |
CN105283851B (zh) | 用于选择跟踪目标的成本分析 | |
CN105283866B (zh) | 包括使用相似频率的优化分析的应用跟踪方法和*** | |
US8156377B2 (en) | Method and apparatus for determining ranked causal paths for faults in a complex multi-host system with probabilistic inference in a time series | |
CN110413227B (zh) | 一种硬盘设备的剩余使用寿命在线预测方法和*** | |
US8181132B2 (en) | Validating one or more circuits using one or more grids | |
US8291263B2 (en) | Methods and apparatus for cross-host diagnosis of complex multi-host systems in a time series with probabilistic inference | |
US8069370B1 (en) | Fault identification of multi-host complex systems with timesliding window analysis in a time series | |
Mahmoud et al. | Hardnn: Feature map vulnerability evaluation in cnns | |
US20140195860A1 (en) | Early Detection Of Failing Computers | |
BR112015019167B1 (pt) | Método realizado por um processador de computador e sistema | |
CN111274126A (zh) | 测试用例筛选方法、装置及介质 | |
Rahman et al. | Jaccard index based availability prediction in enterprise grids | |
US20220100632A1 (en) | Detecting performance degradation in remotely deployed applications | |
CN111581036B (zh) | 一种物联网故障检测方法、检测***、存储介质 | |
Wu et al. | Causal inference techniques for microservice performance diagnosis: Evaluation and guiding recommendations | |
El Mandouh et al. | Application of machine learning techniques in post-silicon debugging and bug localization | |
Cotroneo et al. | Enhancing failure propagation analysis in cloud computing systems | |
KR20220143766A (ko) | 데이터 품질 문제들의 동적 발견 및 수정 | |
CN110543462A (zh) | 微服务可靠性预测方法、预测装置、电子设备及存储介质 | |
Cotroneo et al. | Enhancing the analysis of software failures in cloud computing systems with deep learning | |
Di Martino | One size does not fit all: Clustering supercomputer failures using a multiple time window approach | |
Zhang et al. | Robust system instance clustering for large-scale web 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 |