当前位置: 首页 > 专利查询>武汉大学专利>正文

一种任务导向和视角不变的多模态故障诊断方法及系统技术方案

技术编号:39160500 阅读:12 留言:0更新日期:2023-10-23 15:02
本发明专利技术公开了一种任务导向和视角不变的多模态故障诊断方法及系统,其中的方法包括基于跟踪信息构建微服务系统的实例依赖图获取各实例的多模态的事件表达;基于实例依赖图,随机失活部分非根因节点,获取增广数据集;基于图神经网络对实例依赖图进行特征聚合,获取多模态的图级别故障表达,在多模态的图级别故障表达上进行任务导向学习和构建跨模态关联;基于图级别的故障表达,联合学习根因定位和故障分类两个故障诊断任务,获取最终的故障根因排名和故障类型。本申请通过深入挖掘诊断任务和不同模态数据之间的隐藏关联,以及构建跨模态联系,从大量故障微服务中筛选出故障根因并识别故障类型,辅助工程师进行故障诊断。辅助工程师进行故障诊断。辅助工程师进行故障诊断。

【技术实现步骤摘要】
一种任务导向和视角不变的多模态故障诊断方法及系统


[0001]本专利技术涉及软件工程微服务
,尤其涉及一种任务导向和视角不变的多模态故障诊断方法及系统。

技术介绍

[0002]微服务架构因为可伸缩、迭代快等优点变得越来越流行。微服务架构将单体应用架构根据业务逻辑分成多个微服务,每个微服务包含许多实例副本,微服务之间通过HTTP与RPC进行调用。然而,微服务系统中复杂的调用关系使得故障可以从一个微服务实例传递到其他微服务实例,导致同时出现大量异常的微服务。比如,2021年9月,facebook宕机事故持续了近6个小时,造成约7980万美元的损失。
[0003]故障诊断在微服务系统中是非常必要的工作,运维人员在故障发生时需要分析多个模态的监控数据,快速定位到发生故障的微服务实例(比如登陆服务),并且对故障类型进行分析(比如内存不足),同时针对性的采取策略(提高内存配置)。现有大量研究工作基于单种监控数据进行故障诊断,比如GIED和DejaVu通过提取历史Metric的特征进行故障检测和定位;MicroRank和MicroSketch利用Trace的结构信息和调用细节推理出概率最大的故障微服务;DyCause通过提取API的日志信息进行故障诊断。然而,单一模态的监控数据包含的信息并不全面,比如仅仅通过Trace信息在诊断硬件资源故障上难度较大。
[0004]近年来,如何融合多个模态的监控数据进行故障诊断逐渐受到研究者的关注。融合多模态监控数据的难点在于不同模态之间数据结构差异大、难以建立关联以及时间尺度难对齐等。现在有些工作聚焦于融合多种模态的监控数据,开阔了故障诊断工具的视角。比如DiagFusion采用一种早期融合的方式,在数据处理期间将多模态监控数据统一转化为事件的特征,用于后续特定的下游任务;Eadro采用一种中期融合的方式,对不同模态数据分别采用特定的神经网络提取为高维特征后再进行融合。
[0005]本申请专利技术人在实施本专利技术的过程中发现,现有技术中至少存在如下技术问题:
[0006]相比基于单模态数据的方法只利用到部分有效信息,DiagFusion和Eadro在故障诊断上有更好的性能表现。但是,两种方法在融合多模态数据特征前只进行了简单的特征提取,DiagFusion直接在数据层面进行融合,Eadro在特征层面进行融合,融合后直接投入到下游诊断任务,但都没有基于各自模态和任务的特点进行针对性的训练,因此,导致故障诊断准确率不高。

技术实现思路

[0007]本专利技术的目的在于提供一种任务导向和视角不变的多模态故障诊断方法及系统,用于解决或者至少部分解决现有技术中存在的故障诊断准确率不高的技术问题。
[0008]为了解决上述技术问题,本专利技术技术方案为:
[0009]第一方面提供了一种任务导向和视角不变的多模态故障诊断方法,包括:
[0010]S1:基于跟踪信息构建微服务系统的实例依赖图,统一提取并编码实例依赖图上
每个微服务实例的多模态事件,获取各微服务实例的多模态的事件表达,其中,微服务系统的实例依赖图包括节点和边,节点表示微服务实例,边表示微服务实例之间的调用关系,节点包括根因节点和非根因节点;
[0011]S2:基于实例依赖图,随机失活部分非根因节点,获取增广数据集;
[0012]S3:基于图神经网络和获取的多模态的事件表达对实例依赖图进行特征聚合,获取多模态的图级别故障表达,在多模态的图级别故障表达上进行任务导向学习和构建跨模态关联;
[0013]S4:基于图级别的故障表达和增广数据集,联合学习根因定位和故障分类两个故障诊断任务,获取最终的多模态故障诊断结果,包括故障根因排名和故障类型。
[0014]在一种实施方式中,步骤S1包括:
[0015]S1.1:基于分布式系统追踪技术捕获微服务实例之间的交互轨迹,通过收集和捕获的交互轨迹得到跟踪信息,基于跟踪信息构建微服务系统的实例依赖关系图;
[0016]S1.2:提取指标序列中的异常事件并进行编码,提取跟踪中每个跨度的异常事件并进行编码,提取日志中的日志模板并进行编码,其中,跟踪用于记录用户请求在微服务系统中的轨迹;
[0017]S1.3:编码三种模态的事件序列,获得三种模态的事件表达。
[0018]在一种实施方式中,步骤S2根据下列公式,获取随机失活的非根因节点数量:
[0019][0020]其中,p代表随机失活的节点比例,代表实例依赖图中的所有节点的数量,m为随机失活的非根因节点数量。
[0021]在一种实施方式中,步骤S3包括:
[0022]S3.1:对于图列表GL中的任意一个实例依赖图的第k个节点v
k
的三个模态表达采用三个基于拓扑自适应图神经网络的编码器(E
T
,E
M
,E
L
)对各模态表达进行特征聚合,得到融合了邻居节点信息的节点表达进一步得到多模态的图级别故障表达,其中,分别表示节点v
k
的指标模态的事件表达,跟踪模态的事件表达和日志模态的事件表达;E
T
,E
M
,E
L
分别为跟踪模态的编码器,指标模态的编码器和日志模态的编码器,分别为指标模态下v
k
的聚集了K跳内所有邻居节点信息的节点表达,跟踪模态下v
k
的聚集了K跳内所有邻居节点信息的节点表达以及日志模态下v
k
的聚集了K跳内所有邻居节点信息的节点表达;
[0023]S3.2:采用任务导向学习挖掘每个模态对特定任务的潜在贡献;
[0024]S3.3:通过构建多模态之间的关联挖掘视角不变的信息,视角不变的信息包括异常的微服务以及故障程度。
[0025]在一种实施方式中,三个模态包括指标模态、跟踪模态和日志模态,其中,指标模态图级别故障表达的获取方式包括:
[0026]采用TAG图神经网络作为编码器对指标模态进行特征融合:
[0027][0028]其中,代表指标模态下第z个邻居节点的指标特征,W1和W2表示TAG网络的可学习的参数;
[0029]在经过两层图神经网络后,通过一个最大池化层获得指标模态的图级别故障表达:
[0030][0031]其中,代表实例依赖图中的所有节点的数量,f
M
表示指标模态的图级别故障表达。
[0032]在一种实施方式中,步骤S3.2中的损失为多模态的任务导向损失,表示为:
[0033][0034]其中,分别表示跟踪模态、指标模态以及日志模态的损失,表示多模态的任务导向损失;
[0035]S3.3中的损失为三个模态的跨模态损失,表示为:
[0036][0037]其中,表示指标模态和日志模态的跨模态对比损失,表示指标模态和跟踪模态的跨模态对比损失,为三个模态的跨模态损失。
[0038]在一种实施方式中,步骤S4包括:
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务导向和视角不变的多模态故障诊断方法,其特征在于,包括:S1:基于跟踪信息构建微服务系统的实例依赖图,统一提取并编码实例依赖图上每个微服务实例的多模态事件,获取各微服务实例的多模态的事件表达,其中,微服务系统的实例依赖图包括节点和边,节点表示微服务实例,边表示微服务实例之间的调用关系,节点包括根因节点和非根因节点;S2:基于实例依赖图,随机失活部分非根因节点,获取增广数据集;S3:基于图神经网络和获取的多模态的事件表达对实例依赖图进行特征聚合,获取多模态的图级别故障表达,在多模态的图级别故障表达上进行任务导向学习和构建跨模态关联;S4:基于图级别的故障表达和增广数据集,联合学习根因定位和故障分类两个故障诊断任务,获取最终的多模态故障诊断结果,包括故障根因排名和故障类型。2.如权利要求1所述的任务导向和视角不变的多模态故障诊断方法,其特征在于,步骤S1包括:S1.1:基于分布式系统追踪技术捕获微服务实例之间的交互轨迹,通过收集和捕获的交互轨迹得到跟踪信息,基于跟踪信息构建微服务系统的实例依赖关系图;S1.2:提取指标序列中的异常事件并进行编码,提取跟踪中每个跨度的异常事件并进行编码,提取日志中的日志模板并进行编码,其中,跟踪用于记录用户请求在微服务系统中的轨迹;S1.3:编码三种模态的事件序列,获得三种模态的事件表达。3.如权利要求1所述的任务导向和视角不变的多模态故障诊断方法,其特征在于,步骤S2根据下列公式,获取随机失活的非根因节点数量:其中,p代表随机失活的节点比例,代表实例依赖图中的所有节点的数量,m为随机失活的非根因节点数量。4.如权利要求1所述的任务导向和视角不变的多模态故障诊断方法,其特征在于,步骤S3包括:S3.1:对于图列表GL中的任意一个实例依赖图的第k个节点v
k
的三个模态表达采用三个基于拓扑自适应图神经网络的编码器(E
T
,E
M
,E
L
)对各模态表达进行特征聚合,得到融合了邻居节点信息的节点表达进一步得到多模态的图级别故障表达,其中,分别表示节点v
k
的指标模态的事件表达,跟踪模态的事件表达和日志模态的事件表达;E
T
,E
M
,E
L
分别为跟踪模态的编码器,指标模态的编码器和日志模态的编码器,分别为指标模态下v
k
的聚集了K跳内所有邻居节点信息的节点表达,跟踪模态下v
k
的聚集了K跳内所有邻居节点信息的节点表达以及日志模态下v
k
的聚集了K跳内所有邻居节点信息的节点表达;S3.2:采用任务导向学习挖掘每个模态对特定任务的潜在贡献;S3.3:通过构建多模态之间的关联挖掘视角不变的信息,视角不变的信息包括异常的微服务以及故障程度。
5.如权利要求4所述的任务导向和视角不变的多模态故障诊断方法,其特征在于,三个模态包括指标模态、跟踪模态和日志模态,其中,指标模态图级别故障表达的获取方式包括:采用TAG图神经网络作为编码器对指标模态进行特征融合:其中,代表指标模态下第z个邻居节点的指标特征,W1和W2表示TAG网络的可学习的参数;在经过两层图神经网络后,通过一...

【专利技术属性】
技术研发人员:李兵谢帅宇王健何涵彬
申请(专利权)人:武汉大学
类型:发明
国别省市:

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

1