System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及微服务故障根因定位,特别涉及一种基于异常调用模式挖掘的微服务故障根因定位方法。
技术介绍
1、近年来,由于微服务框架由于其轻量化、低耦合、可维护、高可靠性的优点,逐步取代了单一应用程序,在各个企业的应用越来越广泛。但随着现代工业微服务数量越来越多,架构越来越复杂,微服务系统的故障排查也变得越来越困难。异常一旦发生,想要快速而准确的定位根因需要开发和运维人员熟悉整个微服务系统的架构,而随着微服务系统的体量越来越庞大,想要达到这个要求无疑是不切实际的。
2、分布式追踪技术对大型微服务系统的系统监测和故障分析诊断具有不可替代的优势。当微服务系统实现用户请求时,微服务通过一些特定的应用程序编程接口(api)相互调用。一个微服务可能包含数十到数百个api。一次调用是一组特定的微服务调用者与被调用者的微服务对(称为调用对)。实现同一条用户请求的所有调用对组成一条调用链。分布式追踪技术可以捕获微服务系统运行中产生的每一条调用链,是实现微服务系统的监测和故障分析诊断的一项重要技术。
3、现有技术在微服务异常根因定位中,存在用时较久且精确度不高的问题。例如,申请号为202211637116.7,名称为“一种细粒度分布式微服务系统异常根因定位方法及装置”的专利申请,其公开了收集微服务系统的多维度指标数据和服务调用数据,基于收集的服务调用数据进行服务调用拓扑图构建,基于多维度指标数据进行建模形成指标数据模型,得到多维度指标数据矩阵,之后将服务调用拓扑图与指标数据模型进行结合,得到异常子图,同时根据指标数据模型构建
技术实现思路
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所述的基于异常调用模式挖掘的微服务故障根因定位方法,其特征在于,通过神经网络模型对微服务调用链的全部微服务进行异常调用模式的挖掘,将微服务调...
【专利技术属性】
技术研发人员:徐悦甡,韩海斌,赵新奎,黑蕾,李瑞,邱志博,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。