System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于异常调用模式挖掘的微服务故障根因定位方法技术_技高网

一种基于异常调用模式挖掘的微服务故障根因定位方法技术

技术编号:39992572 阅读:8 留言:0更新日期:2024-01-09 02:26
本发明专利技术公开了一种基于异常调用模式挖掘的微服务故障根因定位方法,包括:将调用链中每个微服务的响应时间和调用路径的特征编码为固定长度的向量;对全部微服务挖掘出微服务为故障根因时的异常调用模式;基于每个微服务,构建独立的故障判别模型并训练,进行故障检测和分类;预测符合异常调用模式的调用链的故障类型,并对每个微服务的异常指标特征进行故障根因概率得分预测;进行根因定位,确定故障在调用链中的具体发生位置;根据微服务调用链拓扑结构特征分析异常传播路径,并对调用链的全部根因概率得分进行排序得出最可能的异常根因微服务。本发明专利技术实现了调用链整体的综合考虑,在分布式系统发生异常时实时快速、准确的定位根因。

【技术实现步骤摘要】

本专利技术涉及微服务故障根因定位,特别涉及一种基于异常调用模式挖掘的微服务故障根因定位方法


技术介绍

1、近年来,由于微服务框架由于其轻量化、低耦合、可维护、高可靠性的优点,逐步取代了单一应用程序,在各个企业的应用越来越广泛。但随着现代工业微服务数量越来越多,架构越来越复杂,微服务系统的故障排查也变得越来越困难。异常一旦发生,想要快速而准确的定位根因需要开发和运维人员熟悉整个微服务系统的架构,而随着微服务系统的体量越来越庞大,想要达到这个要求无疑是不切实际的。

2、分布式追踪技术对大型微服务系统的系统监测和故障分析诊断具有不可替代的优势。当微服务系统实现用户请求时,微服务通过一些特定的应用程序编程接口(api)相互调用。一个微服务可能包含数十到数百个api。一次调用是一组特定的微服务调用者与被调用者的微服务对(称为调用对)。实现同一条用户请求的所有调用对组成一条调用链。分布式追踪技术可以捕获微服务系统运行中产生的每一条调用链,是实现微服务系统的监测和故障分析诊断的一项重要技术。

3、现有技术在微服务异常根因定位中,存在用时较久且精确度不高的问题。例如,申请号为202211637116.7,名称为“一种细粒度分布式微服务系统异常根因定位方法及装置”的专利申请,其公开了收集微服务系统的多维度指标数据和服务调用数据,基于收集的服务调用数据进行服务调用拓扑图构建,基于多维度指标数据进行建模形成指标数据模型,得到多维度指标数据矩阵,之后将服务调用拓扑图与指标数据模型进行结合,得到异常子图,同时根据指标数据模型构建个性化数组;在异常子图中执行个性化随机游走算法以得出异常根因,并根据异常根因结果进行异常检查和恢复。其公开的方法能够帮助开发和运维人员在分布式系统发生异常时实时快速、准确地定位根因,将根因粒度进一步缩小至容器实例或物理机,以迅速响应防止系统崩溃。但存在以下不足:1、随机游走算法的随机性特征带来的不确定性,无法保证每次运行都能找到准确的故障根因,且由于随机性质,会出现搜索路径偏离故障根因的情况。2、路径搜索空间复杂,在大规模的分布式系统中,调用链可能非常庞大且复杂,导致搜索空间巨大,随机游走算法需要耗费较长时间才能对大规模调用链进行完整的搜索,无法在短时间内找到故障根因。申请号:202211490597.3,名称为“微服务系统的故障根因定位方法、装置和设备”的专利申请,其公开了收集当前时间段内微服务系统的追踪数据,并根据调用的类型分成多个调用对;利用分布式分位数草图算法计算各个调用对处理时间的分位数,并编码为当前时间段对应的状态向量;采用鲁棒随机森林算法对状态向量进行异常分析,确定状态向量的异常得分;基于异常得分对故障进行根因定位。该方法提升了诊断速度,节省大量内存开销,能够适应微服务系统的拓扑的动态变化,在微服务系统经过一些变更后,能够快速的适应变化,进而持续进行异常检测跟根因定位工作。但该方法仅单独对异常调用对的分析,没有综合考虑调用链整体,调用链是描述微服务之间调用关系的结构化表示,它反映了整个分布式系统的执行流程和依赖关系。一般来说,故障往往涉及多个服务之间的交互和影响,仅分析单独的调用,会丢失调用在整个系统中的上下文信息,存在隐藏的故障根因被忽略的问题。


技术实现思路

1、为解决上述问题,本专利技术提供了一种基于异常调用模式挖掘的微服务故障根因定位方法,通过调用链指标特征编码为固定长度的向量,使用神经网络模型挖掘微服务的异常调用模式并进行特征提取,使用对符合异常调用模式的调用链预测其故障类型,同时深入挖掘每个微服务的异常指标特征给出根因概率得分,并结合调用链拓扑结构分析异常传播路径调整微服务集根因得分,根据微服务集得分给出top-k个可能的根因微服务列表,结合故障类型和根因微服务列表有助于开发和运维人员快速定位并排除微服务系统的故障。

2、本专利技术提供了一种基于异常调用模式挖掘的微服务故障根因定位方法,具体技术方案如下:

3、s1:将微服务调用链中每个微服务的响应时间和调用路径的特征编码为固定长度的向量;

4、s2:对微服务调用链的全部微服务进行异常调用模式的挖掘,挖掘当前微服务为故障根因时的异常调用模式,提取异常调用模式的特征;

5、s3:基于每个微服务,构建独立的故障判别模型并训练,进行故障检测和分类;

6、s4:预测符合异常调用模式的微服务调用链的故障类型,并对微服务调用链的每个微服务的异常指标特征进行故障根因概率得分预测;

7、s5:进行根因定位,确定故障在调用链中的具体发生位置;

8、s6:根据微服务调用链拓扑结构特征分析异常传播路径,排除受根因微服务影响的故障微服务,对微服务调用链的全部根因概率得分进行排序得出最可能的异常根因微服务。

9、进一步的,通过对微服务调用链数据进行向量编码,将调用链数据编码为等长的,长度为n×m的向量t={t1,1…ti,j…tn,m};

10、其中,n表示整个微服务系统的微服务数量,m表示调用链中每个微服务的指标数据;ti,j表示第i个微服务的第j个指标数据。

11、进一步的,所述指标数据包括微服务的开始时间戳和结束时间戳、微服务调用的网络返回值、服务器的cpu利用率、内存利用率以及微服务的调用者微服务编号。

12、进一步的,对于没有包含微服务的指标填充0。

13、进一步的,通过神经网络模型对微服务调用链的全部微服务进行异常调用模式的挖掘,将微服务调用链数据按照微服务集u的不同划分为不同的调用模式;

14、其中,u包含了一条调用链经过的所有微服务si;若有si∈ut,则有t∈ti,ti表示所有的经过了微服务si的调用链t的集合。

15、进一步的,步骤s3中,所述故障判别模型,具体构建结构如下:

16、ti为模型输入,调用链的故障类型为数据的标签,获得微服务si产生j类型故障的似然概率向量pi={pi0,…,pij,…,pim},对每个微服务si计算pi,得到调用链故障类型矩阵p;

17、基于所有微服务的不同类型故障的概率值,获取对应类型故障的得分w={w0,…,wj,…,wm},计算如下:

18、

19、

20、其中,将w0作为调用链无故障的概率,wj作为调用链具有j类故障的概率,w'为对所有类型故障概率之和,作为整个调用链的故障得分,即调用链的异常程度。

21、进一步的,步骤s4中,将所有类型故障概率之和w'与给定的阈值δw进行比较,其中,δw表示所有微服务各故障类型的平均概率之和的上限;

22、当w'≥δw时,为异常调用链计算故障类型,表示如下:

23、wk=max{w1,…,wj,…,wm}

24、wk为除w0外的故障概率最大值,表示k类故障为该调用链最可能的故障类型。

25、进一步的,步骤s5中,所述根因定位,具体如下:

26、s501:按照微本文档来自技高网...

【技术保护点】

1.一种基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,包括:

2.根据权利要求1所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,通过对微服务调用链数据进行向量编码,将调用链数据编码为等长的,长度为N×M的向量T={T1,1…Ti,j…TN,M};

3.根据权利要求2所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,所述指标数据包括微服务的开始时间戳和结束时间戳、微服务调用的网络返回值、服务器的CPU利用率、内存利用率以及微服务的调用者微服务编号。

4.根据权利要求2所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,对于没有包含微服务的指标填充0。

5.根据权利要求1所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,通过神经网络模型对微服务调用链的全部微服务进行异常调用模式的挖掘,将微服务调用链数据按照微服务集U的不同划分为不同的调用模式;

6.根据权利要求5所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,步骤S3中,所述故障判别模型,具体构建结构如下:

7.根据权利要求6所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,步骤S4中,将所有类型故障概率之和w'与给定的阈值δw进行比较,其中,δw表示所有微服务各故障类型的平均概率之和的上限;

8.根据权利要求5所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,步骤S5中,所述根因定位,具体如下:

9.根据权利要求8所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,所述根因判别模型,具体构建结构如下:

10.根据权利要求9所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,通过为微服务Si计算根因得分Li,计算如下:

...

【技术特征摘要】

1.一种基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,包括:

2.根据权利要求1所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,通过对微服务调用链数据进行向量编码,将调用链数据编码为等长的,长度为n×m的向量t={t1,1…ti,j…tn,m};

3.根据权利要求2所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,所述指标数据包括微服务的开始时间戳和结束时间戳、微服务调用的网络返回值、服务器的cpu利用率、内存利用率以及微服务的调用者微服务编号。

4.根据权利要求2所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,对于没有包含微服务的指标填充0。

5.根据权利要求1所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,通过神经网络模型对微服务调用链的全部微服务进行异常调用模式的挖掘,将微服务调...

【专利技术属性】
技术研发人员:徐悦甡韩海斌赵新奎黑蕾李瑞邱志博
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1