CN115357418A - 微服务故障检测方法、装置、存储介质及计算机设备 - Google Patents

微服务故障检测方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN115357418A
CN115357418A CN202210705260.3A CN202210705260A CN115357418A CN 115357418 A CN115357418 A CN 115357418A CN 202210705260 A CN202210705260 A CN 202210705260A CN 115357418 A CN115357418 A CN 115357418A
Authority
CN
China
Prior art keywords
data
abnormal
detection
determining
time window
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.)
Pending
Application number
CN202210705260.3A
Other languages
English (en)
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.)
Nankai University
Original Assignee
Nankai 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 Nankai University filed Critical Nankai University
Priority to CN202210705260.3A priority Critical patent/CN115357418A/zh
Publication of CN115357418A publication Critical patent/CN115357418A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Abstract

本发明公开了一种微服务故障检测方法、装置、存储介质及计算机设备,主要在于能够提高微服务故障的检测精度。其中包括:获取微服务系统在各时间窗口下的多模态数据;对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;对所述异常事件序列进行特征提取,得到所述异常特征向量;将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。

Description

微服务故障检测方法、装置、存储介质及计算机设备
技术领域
本发明涉及电力技术领域,尤其是涉及一种微服务故障检测方法、装置、存储介质及计算机设备。
背景技术
云原生系统通常实现在微服务体系架构中,该架构允许开发人员独立开发和部署功能软件单元(微服务)。复杂的应用程序可以分解为细粒度、轻量、弹性、独立和可维护的微服务。每个轻量级的微服务都负责一个简单的功能,每个功能都由不同团队开发的不同微服务提供。微服务体系结构具有高灵活性、可重用性和可伸缩性的特点,使软件开发能够以敏捷的方式进行。为了保证云原生系统的可靠性,运维人员需要根据监测数据进行微服务故障检测。
目前,通常根据采集的日志数据或者特定的指标数据对微服务系统进行故障检测。然而,针对一些资源型故障,微服务系统中的日志数据并不会表现异常,而针对一些业务型故障,指标数据不会表现异常,因此这种使用单一维度数据进行故障检测的方式,无法准确检测出微服务系统中存在的故障问题。
发明内容
本发明提供了一种微服务故障检测方法、装置、存储介质及计算机设备,主要在于能够提高微服务故障的检测精度。
根本本发明的第一个方面,提供一种微服务故障检测方法,包括:
获取微服务系统在各时间窗口下的多模态数据;
对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;
根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;
对所述异常事件序列进行特征提取,得到所述异常特征向量;
将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
根据本发明的第二个方面,提供一种微服务故障检测装置,包括:
获取单元,用于获取微服务系统在各时间窗口下的多模态数据;
异常检测单元,对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;
确定单元,用于根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;
提取单元,用于对所述异常事件序列进行特征提取,得到所述异常特征向量;
故障检测单元,用于将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
根据本发明的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取微服务系统在各时间窗口下的多模态数据;
对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;
根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;
对所述异常事件序列进行特征提取,得到所述异常特征向量;
将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
根据本发明的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
获取微服务系统在各时间窗口下的多模态数据;
对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;
根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;
对所述异常事件序列进行特征提取,得到所述异常特征向量;
将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
本发明提供的一种微服务故障检测方法、装置、存储介质及计算机设备,与目前单一维度数据进行故障检测的方式相比,能够获取微服务系统在各时间窗口下的多模态数据,并对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件,与此同时,根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列,并对所述异常事件序列进行特征提取,得到所述异常特征向量,最终将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。由此通过整合多模态数据,并利用多模态数据和预设故障检测模型进行微服务故障检测,能够有效提高微服务故障的检测精度,有利于后续迅速、准确地定位根因微服务。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例提供的一种微服务故障检测方法流程示意图;
图2示出了本发明实施例提供的另一种微服务故障检测方法流程示意图;
图3示出了本发明实施例提供的云原生系统的调用链示意图;
图4示出了本发明实施例提供的系统架构图;
图5示出了本发明实施例提供的一种微服务故障检测装置的结构示意图;
图6示出了本发明实施例提供的另一种微服务故障检测装置的结构示意图;
图7示出了本发明实施例提供的一种计算机设备的实体结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
目前,使用单一维度数据进行故障检测的方式,无法准确检测出微服务系统中存在的故障问题。
为了解决上述问题,本发明实施例提供了一种微服务故障检测方法,如图1所示,该方法包括:
101、获取微服务系统在各时间窗口下的多模态数据。
其中,时间窗口可以根据实际业务需求进行设置,多模态数据包括日志数据、指标数据和调用链数据。
本发明实施例主要适用于利用多模态数据进行微服务故障检测的场景。本发明实施例的执行主体为能够进行微服务故障检测的装置或者设备,具体可以设置在服务端一侧。
本发明实施在具体阐述整合多模态数据,并利用其进行微服务故障检测的过程之前,先对日志数据、指标数据和调用链数据进行简单阐述。首先日志数据中记载系统详细的运行时间,具体包含了微服务的系统信息(服务器信息、网络设备信息、操作系统信息、应用软件信息),同时也包含了用户的行为信息、网联链路的业务信息。由此可以允许开发人员和运维工程师通过日志数据监督系统行为,并跟踪发现可能出现的问题。此外,日志语义包含大量信息,例如,日志是否与故障相关联,日志中包含什么类型的异常。丰富的日志信息使各种各样的系统管理和诊断任务成为可能,例如,分析统计信息、保障系统安全、发现服务故障、诊断故障根因。由于日志的主要目的是记录系统(包括服务和业务等)状态和重要的事件帮助定位系统的问题,因此,日志数据是在线监控和异常检测的一个重要信息源。
其次,关键性能指标(Key Performance Indicator,KPI)指的是对服务、系统等运维对象的监控指标,例如,CPU利用率、内存利用率、磁盘I/O、页面访问量、页面访问延迟、页面访问错误数等。指标数据的存储的形式是按其发生的时间先后顺序排列而成的数列,即以预定义的时间间隔(例如,30 秒或1分钟)聚合的流式数据,本质上就是时间序列。指标数据可以用于监测系统的异常行为。
再者,云原生系统由多个微服务构成。由同一用户请求触发的微服务之间的所有调用共享一个唯一的标识,在完成业务调用的过程中,微服务监控系统详细记录了相关微服务之间的调用关系,然后将所有的记录数据连接为一个树状链路,则得到了此次请求的业务调用过程的调用链。为了能得到一次调用过程的完整链路监控,需要将请求状态、时延、不同业务应用的特殊信息记录到调用链数据中,所以调用链数据应包含Trace、Span和Annotations。
其中,Trace是指一次业务请求的链路过程,通常用TraceId作为这次请求调用的ID,在一次业务请求过程中,会在用户请求的最开始生成一个用于标识此次请求的全局唯一的TraceId,这个TraceId在这次业务请求过程中保持不变,并且在随着每一层的调用不停地进行传递;Span是指一个微服务的调用过程,通常用SpanId和ParentId来标识,在一次业务调用过程中,会调用不同的微服务,当前微服务在每一次调用时都会生成一个新的SpanId来记录,下游节点服务的ParentId即为此SpanId,这样就可以通过SpanId和ParentId 来定位当前请求在整个业务调用过程中所处的层级,以及确定它的上下游节点服务;Annotations是指附属于每一个Span上的数据信息,一般包括请求调用时间、请求状态、请求时延,以及不同业务的特殊信息。
如图3所示,调用链数据记录了整个请求过程中每一次业务调用的链路信息,包括服务调用信息、资源共享信息、服务部署信息等,据此可得到此次请求的完整调用拓扑图。通过该拓扑图,可以帮助系统架构师明确系统中每个微服务之间的调用关系和依赖关系,了解系统的部署情况和整体结构,实时监控微服务运行状态,为后续系统维护与优化提供支撑,便于发现系统性能瓶颈,通过分析业务请求的调用链路数据,判断是否存在无效、错误调用关系,找出最优调用方式,优化系统性能。而且当系统发生故障时,能够及时、有效地发现系统故障,迅速、准确地定位问题根因微服务。
对于本发明实施例,可以通过监控记录获取微服务系统在不同时间窗口下的日志数据、指标数据和调用链路数据,以便通过对上述多模态数据进行微服务故障检测。
102、对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件。
本发明实施例搭建的用于微服务故障检测的UniFind系统架构如图4所示,UniFind系统架构中主要包括日志模块、指标模块、调用链模块、异常事件序列模块、特征提取模块、模型训练模块和故障诊断模块。该系统架构用于在云原生系统中检测微服务异常模式,发现系统故障,及时从故障中恢复。从实际考虑,这样的系统架构应当易于实现,并在较低的时间开销下维持较高的故障发现效果。
在利用多模态数据进行微服务故障检测之前,需要对多模态数据进行数据整合,在数据整合的过程中,需要对多模态数据分别进行异常检测,以确定各时间窗口下多模态数据分别对应的异常事件。具体检测时,日志模块会先对日志数据进行日志解析,之后在对解析后的日志数据进行异常检测,得到在各时间窗口下日志数据对应的异常事件;指标模块会先进行指标筛选,确定检测指标,之后对检测指标数据进行异常检测,得到在各时间窗口下指标数据对应的异常事件;调用链模块会先对调用链数据进行时序转换,之后对转换后的调用链数据进行异常检测,得到在各时间窗口下调用链数据对应的异常事件。由此通过日志模块、指标模块和调用链模块能够实现对多模态数据的异常检测。
103、根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列。
对于本发明实施例,在得到日志数据、指标数据和调用链数据分别对应的异常事件之后,异常事件序列模块会对上述多模态数据分别对应的异常事件进行整合,得到各时间窗口下的异常事件序列。
104、对所述异常事件序列进行特征提取,得到所述异常特征向量。
对于本发明实施例,由于机器学习算法处理的往往是固定长度的输入、输出数据,并不能直接处理异常事件序列,因此在获取多模态数据对应的异常事件序列之后,特征提取模块会将其转换成数字特征向量,即异常特征向量,具体可以采用词袋模型(Bag ofWords,BOW)将异常事件序列编码成数字特征向量。
105、将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
其中,微服务系统的故障检测结果包括存在微服务故障和不存在微服务故障。现有的微服务故障主要分为资源型故障和业务型故障,由于本发明实施例将与资源型故障和业务型故障相关的多模态数据进行了整合,因此本发明实施例能够有效检测出系统出现的所有微服务故障,从而能够提高微服务故障检测效率。
对于本发明实施例,预设故障检测模型具体可以为梯度提升分类器,具体进行故障检测时,会获取模型训练模块预先训练好的梯度提升分类器,之后故障发现模块会将异常特征向量输入至梯度提升分类器中进行分类,即得到存在微服务故障或者不存在微服务故障的结论。需要说明的是,本发明实施例中的预设故障检测模型并不局限于梯度提升分类,也可以为其他分类模型。
本发明实施例提供的一种微服务故障检测方法,通过整合多模态数据,并利用多模态数据和预设故障检测模型进行微服务故障检测,能够有效提高微服务故障的检测精度,有利于后续迅速、准确地定位根因微服务。
进一步的,为了更好的说明上述微服务故障检测过程,作为对上述实施例的细化和扩展,本发明实施例提供了另一种微服务故障检测方法,如图2 所示,所述方法包括:
201、获取微服务系统在各时间窗口下的多模态数据。
对于本发明实施例,获取各时间窗口下的多模态数据的具体过程与步骤 101完全相同,在此不再赘述。
202、对所述日志数据进行解析,得到解析后的日志数据,并对所述解析后的日志数据进行异常检测,得到在所述各时间窗口下所述日志数据对应的异常事件。
对于本发明实施例,在获取多模态数据之后,首先利用日志模块对日志数据进行解析和异常检测,针对日志解析过程,步骤205具体包括:确定所述日志数据对应的长度和令牌;基于所述日志数据对应的长度和令牌,利用预设固定深度树日志解析算法确定所述日志数据对应的日志消息模板,并根据所述日志消息模板,确定所述解析后的日志数据。
由于日志数据是非结构化数据,直接处理较为困难,因此需要将日志数据解析为结构化数据(模板部分+变量参数)得到日志模板,以便有助于后续的分析,为了实现日志模板的自动化提取,可以采用基于聚类、基于最长公共子序列、基于频繁项挖掘、基于启发式等算法进行日志解析。现以聚类算法中的固定深度树日志解析算法Drain为例详细说明对日志数据的解析过程,首先对原始日志数据进行预处理,由于预设固定深度树日志解析算法假设属于相同日志模板的日志数据具有相同的日志长度和令牌,因此可以按照获取的原始日志数据对应的日志长度和令牌匹配相应的日志模板,通过该日志模板能够将原始日志数据解析为结构化数据(模板部分和变量参数)。由此能够从日志中提取基本信息,该基本信息具体包括:发送请求的客户端信息、时间戳和请求的具体内容,所有的信息会按照不同的维度依照一定的方式进行聚合,进而得到解析后的日志数据。
进一步地,在对日志数据进行解析之后,需要对解析后的日志数据进行异常检测,针对该异常检测过程,步骤202具体包括:分别判定所述各时间窗口下解析后的日志数据是否存在目标关键词;根据判定结果,确定在所述各时间窗口下所述解析后的日志数据对应的异常事件。
具体地,由于解析后的日志数据中本身包含相关的语义信息,例如,“ERROR”和“Failure”,因此可以通过关键词对日志数据进行异常检测,即当解析后的日志数据中出现了这种关键词时,便提取目标关键词,同时确定该日志数据存在异常,并将异常日志数据作为日志事件(异常事件),该日志事件的形式可以是二元组<时间戳、模板id>,其中,时间戳用于记录此次异常日志事件发生的时间、模板di用于记录此次异常事件对应的日志模板。
203、确定所述微服务系统对应的检测指标,从所述指标数据中确定检测指标数据,并对所述检测指标数据进行异常检测,得到在所述各时间窗口下所述指标数据对应的异常事件。
对于本发明实施例,在获取多模态数据之后,利用指标模块进行指标筛选和异常检测,针对指标筛选过程,步骤203具体包括:从各个指标中过滤掉无效指标,得到剩余指标;利用皮尔逊相关系数算法,对所述剩余指标进行相关性分析,并根据相关性分析结果,确定检测指标;根据所述检测指标,获取检测指标数据。
由于在服务级别和机器(物理机和虚拟机)级别记录了很多的指标数据,而指标数据有很多的衡量标准,因此需要进行指标筛选。具体地,首先过滤无效的指标,包括单一值的指标、存在大量缺失值的指标、线性的指标,然后对剩余指标进行相似性分析,指标模块采用皮尔逊相关系数计算指标之间的相关性,对高相关性的指标进行过滤,保留其一,最终得到检测指标。
进一步地,在确定检测指标后,需要对检测指标数据进行异常检测,针对该异常检测过程,步骤203具体包括:设定所述检测指标数据符合正态分布,确定所述检测指标数据对应的第一平均值和第一方差;根据所述第一平均值和所述第一方差,确定第一标准差范围;基于所述第一标准差范围,确定在所述各时间窗口下所述检测指标数据对应的异常事件。
本发明实施例中采用改进的3-sigma对检测指标数据进行异常检测。具体地,假设各时间窗口下的监测指标数据符合正态分布,计算第一平均值与第一方差,如果后续的检测指标值不在3倍标准差范围内,则确定存在指标事件(异常事件)。由于不同的故障可能在相同的指标数据上出现异常,但是异常行为存在差别,有的异常水平远远高于正常水平,有的异常水平远远低于正常水平,因此本发明实施例将异常行为加入到异常检测方法中,分别为上升型异常和下降型异常。指标事件的形式可以是二元组<时间戳,微服务+ 指标+异常行为>,其中,时间戳记录此次异常指标事件发生的时间,微服务+ 指标+异常行为记录此次异常事件发生在哪个微服务的哪个指标上,属于哪种异常行为。
204、对所述调用链数据进行时序转换,得到转换后的调用链数据,并对所述转换后的调用链数据进行异常检测,得到在所述各时间窗口下所述调用链数据对应的异常事件。
对于本发明实施例,在获取多模态数据之后,利用调用链模块进行调用链数据转换和调用链数据异常检测,针对调用链数据的时序转换过程,步骤 204具体包括:基于调用方和被调用方,对调用链数据分别进行拆分和分组,得到拆分后的多组调用链数据;根据所述拆分后的每组调用链数据中所涉及的字段信息,生成转换后的调用链数据。
本发明实施例按照<调用方-被调用方>将调用链数据拆分为一种时序数据。具体地,可以通过调用方服务和被调用方服务对调用链数据进行分组,得到拆分后的多组调用链数据,然后确定每组调用链数据中的多个字段,在调用链记录的不同实现下,调用链数据携带不同的字段,例如响应时间、状态码等,由此可以得到转换后的调用链数据。
进一步地,在确定转换后的调用链数据之后,需要对其进行异常检测,针对该异常检测过程,步骤204具体包括:设定所述转换后的调用链数据符合正态分布,确定所述转换后的调用链数据对应的第二平均值和第二方差;根据所述第二平均值和所述第二方差,确定第二标准差范围;基于所述第二标准差范围,确定在所述各时间窗口下所述检测指标数据对应的异常事件。
本发明实施例采用改进的3-sigma对转换后的调用链数据进行异常检测。具体地,对于响应时间、状态码数量等数值型字段,经过转换得到按调用方服务和被调用方服务分组的时序数据,可以采用和指标数据同样的异常检测方法,以确定调用链事件(异常事件)。调用链事件的形式是二元组<时间戳,调用方+被调用方+异常行为>,其中,时间戳记录此次异常调用链事件发生的时间,调用方+被调用方+异常行为记录此次异常事件发生在哪两个服务之间的调用,属于哪种异常行为。
205、将同一时间窗口下所述多模态数据分别对应的异常事件按时间戳进行整合,得到所述各时间窗口下的异常事件序列。
对于本发明实施例,在得到各时间窗口下多模态数据分别对应的异常事件之后,异常事件序列模块会将多模态数据分别对应的异常事件进行整合,得到统一表示形式,即异常事件序列。当发生微服务故障时,系统实例上可能会有许多不同模态的异常事件。这些事件反映了故障期间实例的异常信息,将多源事件信息整合在一起,并按时间戳排序,可以得到一段时间的异常事件序列。其中,日志事件信息为模板id,指标事件信息为微服务+指标+异常行为,调用链事件信息为调用方+被调用方+异常行为。
206、对所述异常事件序列进行特征提取,得到所述异常特征向量。
对于本发明实施例,在得到异常事件序列之后,特征提取模块会采用词袋模型(Bag of Words,BOW)将异常事件序列编码成数字特征向量。由于机器学习算法处理的往往是固定长度的输入、输出数据,因此不能直接处理异常事件序列,必须把异常事件序列转换成数字特征向量。具体地,词袋模型将异常事件序列看作是若干个异常事件的集合,异常事件序列中每个异常事件的出现都是独立的、互不影响,忽略掉异常事件序列的语法等要素。该方法非常简单和灵活,可以用于从异常事件序列中提取各种特征,即将异常事件序列映射到一个新的特征向量空间中。
207、将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
其中,所述预设故障检测模型为预设梯度提升分类器。对于本发明实施例,在进行微服务故障检测之前,需要构建预设梯度提升分类器。具体地,可以收集大量历史样本数据,并根据历史样本数据对应的故障检测结果,对历史样本数据进行标注,得到样本训练集,最终基于该样本训练集,训练预设梯度提升分类器。
在利用预设梯度提升分类器进行微服务故障检测时,步骤207具体包括:将所述异常特征向量输入至所述预设梯度提升分类器中进行分类,得到分类结果;根据所述分类结果,确定所述微服务系统的故障检测结果。具体地,将异常特征向量输入至预设梯度提升分类器中进行分类,得到系统存在微服务故障的第一概率值,以及系统不存在微服务故障的第二概率值,如果第一概率值大于第二概率值,则确定系统存在微服务故障;如果第一概率值小于第二概率值,则确定系统不存在微服务故障。
进一步地,本发明实施例还可以对搭建的UniFind系统进行评估。具体地,本发明实施例采用智能运维领域通用公开GAIA数据集,从GAIA数据集中获得了2021年7月4日至16日的多模态数据以及故障区间。每次故障发现工作的时间窗口为10分钟,根据GAIA数据集提供的故障注入信息,即故障标签,人工再次确认此10分钟内系统是否发生故障。2021年7月4日至13日共10天的数据以及故障标签作为训练集足以进行模型的训练,如表1所示,数据集中包含超1亿7000万行日志数据,超5600万条指标数据,超2800万行的调用链数据。其中,训练集故障区间占比75%,正常区间占比25%。2021年7月14日至16日共三天的数据以及故障标签作为测试集用以评估模型故障发现效果,其中,测试集故障区间占比78%,正常区间占比22%。在13天的时间跨度中,训练集和测试集占比分别为80%、20%。因此在此数据集上的评估结果能较好地反映出UniFind系统故障发现的效果,以验证UniFind系统的性能。
表1数据集详细信息
Figure BDA0003705982290000121
进一步地,在性能评估中,本发明实施例使用三个常用的机器学习评估指标:精准率(Precision)、召回率(Recall)和F1指标(F1-Score)。上述评估指标通过计算结果中的四个数据,真正类(True Positives,简称为TP)、真负类(True Negatives,简称为TN)、假正类(False Positives,简称为FP) 和假负类(False Negatives,简称为FN)得到。计算方式如下:
Figure BDA0003705982290000122
Figure BDA0003705982290000131
Figure BDA0003705982290000132
其中,真正类为所有被准确判断发现为故障区间,真负类为所有被准确判断发现为正常区间,假正类为所有被判断发现为故障区间的正常区间(即误报),假正类为所有未被判断发现出的故障区间(即漏报)。由此通过上述评估指标的计算可以对UniFind系统的性能进行评价。
本发明实施例提供的另一种微服务故障检测方法,通过整合多模态数据,并利用多模态数据和预设故障检测模型进行微服务故障检测,能够有效提高微服务故障的检测精度,有利于后续迅速、准确地定位根因微服务。
进一步地,作为图1的具体实现,本发明实施例提供了一种微服务故障检测装置,如图5所示,所述装置包括:获取单元31、异常检测单元32、确定单元33、提取单元34和故障检测单元35。
所述获取单元31,可以用于获取微服务系统在各时间窗口下的多模态数据。
所述异常检测单元32,可以用于对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件。
所述确定单元33,可以用于根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列。
所述提取单元34,可以用于对所述异常事件序列进行特征提取,得到所述异常特征向量。
所述故障检测单元35,可以用于将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
在具体应用场景中,所述多模态数据包括日志数据、指标数据和调用链数据,所述异常检测单元32,如图6所示,包括:解析模块321、筛选模块322、转换模块323和异常检测模块324。
所述解析模块321,可以用于对所述日志数据进行解析,得到解析后的日志数据。
所述筛选模块322,可以用于确定所述微服务系统对应的检测指标,从所述指标数据中确定检测指标数据。
所述转换模块323,可以用于对所述调用链数据进行时序转换,得到转换后的调用链数据。
所述异常检测模块324,可以用于分别对所述解析后的日志数据、所述检测指标数据和所述转换后的调用链数据进行异常检测,得到在所述各时间窗口下所述日志数据、所述指标数据和所述调用链数据分别对应的异常事件。
进一步地,所述解析模块321,具体可以用于确定所述日志数据对应的长度和令牌;基于所述日志数据对应的长度和令牌,利用预设固定深度树日志解析算法确定所述日志数据对应的日志消息模板,并根据所述日志消息模板,确定所述解析后的日志数据。
所述异常检测模块324,具体可以用于分别判定所述各时间窗口下解析后的日志数据是否存在目标关键词;根据判定结果,确定在所述各时间窗口下所述解析后的日志数据对应的异常事件。
进一步地,所述筛选模块322,具体可以用于从各个指标中过滤掉无效指标,得到剩余指标;利用皮尔逊相关系数算法,对所述剩余指标进行相关性分析,并根据相关性分析结果,确定检测指标;根据所述检测指标,获取检测指标数据。
所述异常检测模块324,还具体可以用于设定所述检测指标数据符合正态分布,确定所述检测指标数据对应的第一平均值和第一方差;根据所述第一平均值和所述第一方差,确定第一标准差范围;基于所述第一标准差范围,确定在所述各时间窗口下所述检测指标数据对应的异常事件。
进一步地,所述转换模块323,具体可以用于基于调用方和被调用方,对调用链数据分别进行拆分和分组,得到拆分后的多组调用链数据;根据所述拆分后的每组调用链数据中所涉及的字段信息,生成转换后的调用链数据。
所述异常检测模块324,还具体可以用于设定所述转换后的调用链数据符合正态分布,确定所述转换后的调用链数据对应的第二平均值和第二方差;根据所述第二平均值和所述第二方差,确定第二标准差范围;基于所述第二标准差范围,确定在所述各时间窗口下所述检测指标数据对应的异常事件。
在具体应用场景中,所述确定单元33,具体可以用于将同一时间窗口下所述多模态数据分别对应的异常事件按时间戳进行整合,得到所述各时间窗口下的异常事件序列。
在具体应用场景中,所述故障检测单元35,包括:分类模块351和确定模块352。
所述分类模块351,可以用于将所述异常特征向量输入至所述预设梯度提升分类器中进行分类,得到分类结果。
所述确定模块352,可以用于根据所述分类结果,确定所述微服务系统的故障检测结果。
需要说明的是,本发明实施例提供的一种微服务故障检测装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。
基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取微服务系统在各时间窗口下的多模态数据;对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;对所述异常事件序列进行特征提取,得到所述异常特征向量;将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
基于上述如图1所示方法和如图5所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图7所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上所述处理器41执行所述程序时实现以下步骤:对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;对所述异常事件序列进行特征提取,得到所述异常特征向量;将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
本发明实施例通过整合多模态数据,并利用多模态数据和预设故障检测模型进行微服务故障检测,能够有效提高微服务故障的检测精度,有利于后续迅速、准确地定位根因微服务。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (10)

1.一种微服务故障检测方法,其特征在于,包括:
获取微服务系统在各时间窗口下的多模态数据;
对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;
根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;
对所述异常事件序列进行特征提取,得到所述异常特征向量;
将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
2.根据权利要求1所述的方法,其特征在于,所述多模态数据包括日志数据、指标数据和调用链数据,所述对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件,包括:
对所述日志数据进行解析,得到解析后的日志数据;
确定所述微服务系统对应的检测指标,从所述指标数据中确定检测指标数据;
对所述调用链数据进行时序转换,得到转换后的调用链数据;
分别对所述解析后的日志数据、所述检测指标数据和所述转换后的调用链数据进行异常检测,得到在所述各时间窗口下所述日志数据、所述指标数据和所述调用链数据分别对应的异常事件。
3.根据权利要求2所述的方法,其特征在于,所述对所述日志数据进行解析,得到解析后的日志数据,包括:
确定所述日志数据对应的长度和令牌;
基于所述日志数据对应的长度和令牌,利用预设固定深度树日志解析算法确定所述日志数据对应的日志消息模板,并根据所述日志消息模板,确定所述解析后的日志数据;
对所述解析后的日志数据进行异常检测,得到在所述各时间窗口下所述日志数据对应的异常事件,包括:
分别判定所述各时间窗口下解析后的日志数据是否存在目标关键词;
根据判定结果,确定在所述各时间窗口下所述解析后的日志数据对应的异常事件。
4.根据权利要求2所述的方法,其特征在于,所述确定所述微服务系统对应的检测指标,从所述指标数据中确定检测指标数据,包括:
从各个指标中过滤掉无效指标,得到剩余指标;
利用皮尔逊相关系数算法,对所述剩余指标进行相关性分析,并根据相关性分析结果,确定检测指标;
根据所述检测指标,获取检测指标数据;
对所述检测指标数据进行异常检测,得到在所述各时间窗口下所述指标数据对应的异常事件,包括:
设定所述检测指标数据符合正态分布,确定所述检测指标数据对应的第一平均值和第一方差;
根据所述第一平均值和所述第一方差,确定第一标准差范围;
基于所述第一标准差范围,确定在所述各时间窗口下所述检测指标数据对应的异常事件。
5.根据权利要求2所述的方法,其特征在于,所述对所述调用链数据进行时序转换,得到转换后的调用链数据,包括:
基于调用方和被调用方,对调用链数据分别进行拆分和分组,得到拆分后的多组调用链数据;
根据所述拆分后的每组调用链数据中所涉及的字段信息,生成转换后的调用链数据;
对所述转换后的调用链数据进行异常检测,得到在所述各时间窗口下所述调用链数据对应的异常事件,包括:
设定所述转换后的调用链数据符合正态分布,确定所述转换后的调用链数据对应的第二平均值和第二方差;
根据所述第二平均值和所述第二方差,确定第二标准差范围;
基于所述第二标准差范围,确定在所述各时间窗口下所述检测指标数据对应的异常事件。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列,包括:
将同一时间窗口下所述多模态数据分别对应的异常事件按时间戳进行整合,得到所述各时间窗口下的异常事件序列。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述预设故障检测模型为预设梯度提升分类器,所述将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果,包括:
将所述异常特征向量输入至所述预设梯度提升分类器中进行分类,得到分类结果;
根据所述分类结果,确定所述微服务系统的故障检测结果。
8.一种微服务故障检测装置,其特征在于,包括:
获取单元,用于获取微服务系统在各时间窗口下的多模态数据;
异常检测单元,用于对所述多模态数据分别进行异常检测,得到所述各时间窗口下多模态数据分别对应的异常事件;
确定单元,用于根据所述多模态数据分别对应的异常事件,确定所述各时间窗口下的异常事件序列;
提取单元,用于对所述异常事件序列进行特征提取,得到所述异常特征向量;
故障检测单元,用于将所述异常特征向量输入至预设故障检测模型中进行故障检测,得到所述微服务系统的故障检测结果。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202210705260.3A 2022-06-21 2022-06-21 微服务故障检测方法、装置、存储介质及计算机设备 Pending CN115357418A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210705260.3A CN115357418A (zh) 2022-06-21 2022-06-21 微服务故障检测方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210705260.3A CN115357418A (zh) 2022-06-21 2022-06-21 微服务故障检测方法、装置、存储介质及计算机设备

Publications (1)

Publication Number Publication Date
CN115357418A true CN115357418A (zh) 2022-11-18

Family

ID=84030447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210705260.3A Pending CN115357418A (zh) 2022-06-21 2022-06-21 微服务故障检测方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN115357418A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048866A (zh) * 2023-03-07 2023-05-02 浙江鹏信信息科技股份有限公司 基于实时流计算引擎的数据故障检测方法、系统及介质
CN117130819A (zh) * 2023-10-27 2023-11-28 江西师范大学 一种基于时延方差和相关系数值的微服务故障诊断方法
CN117520040A (zh) * 2024-01-05 2024-02-06 中国民航大学 一种微服务故障根因确定方法、电子设备及存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048866A (zh) * 2023-03-07 2023-05-02 浙江鹏信信息科技股份有限公司 基于实时流计算引擎的数据故障检测方法、系统及介质
CN116048866B (zh) * 2023-03-07 2023-06-09 浙江鹏信信息科技股份有限公司 基于实时流计算引擎的数据故障检测方法、系统及介质
CN117130819A (zh) * 2023-10-27 2023-11-28 江西师范大学 一种基于时延方差和相关系数值的微服务故障诊断方法
CN117130819B (zh) * 2023-10-27 2024-01-30 江西师范大学 一种基于时延方差和相关系数值的微服务故障诊断方法
CN117520040A (zh) * 2024-01-05 2024-02-06 中国民航大学 一种微服务故障根因确定方法、电子设备及存储介质
CN117520040B (zh) * 2024-01-05 2024-03-08 中国民航大学 一种微服务故障根因确定方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109218114B (zh) 一种基于决策树的服务器故障自动检测系统及检测方法
CN109861844B (zh) 一种基于日志的云服务问题细粒度智能溯源方法
JP7100155B2 (ja) アラームログ圧縮方法、装置、およびシステム、並びに記憶媒体
CN115357418A (zh) 微服务故障检测方法、装置、存储介质及计算机设备
CN109271272B (zh) 基于非结构化日志的大数据组件故障辅助修复系统
US7680753B2 (en) System and method for fault identification in an electronic system based on context-based alarm analysis
Xu et al. Online system problem detection by mining patterns of console logs
CN108964995A (zh) 基于时间轴事件的日志关联分析方法
AU2019275633B2 (en) System and method of automated fault correction in a network environment
CN110489317B (zh) 基于工作流的云系统任务运行故障诊断方法与系统
Zawawy et al. Log filtering and interpretation for root cause analysis
CN111078513A (zh) 日志处理方法、装置、设备、存储介质及日志告警系统
CN111259073A (zh) 基于日志、流量和业务访问的业务系统运行状态智能研判系统
CN116089224B (zh) 告警分析方法、装置、计算节点及计算机可读存储介质
CN111913824B (zh) 确定数据链路故障原因的方法及相关设备
Cai et al. A real-time trace-level root-cause diagnosis system in alibaba datacenters
CN115118621A (zh) 一种基于依赖关系图的微服务性能诊断方法及系统
Huang et al. Symptom-based problem determination using log data abstraction
Weiss Predicting telecommunication equipment failures from sequences of network alarms
KR20210011822A (ko) 인공 지능 기반 비정상 로그를 탐지하는 방법 및 이를 구현하는 시스템
CN115145751A (zh) 微服务系统故障根因定位方法、装置、设备及存储介质
CN115658443B (zh) 一种日志过滤方法及装置
CN111143304A (zh) 一种基于请求链路的微服务系统异常日志分析方法
CN112699048B (zh) 基于人工智能的程序故障处理方法、装置、设备及存储介质
CN113572628B (zh) 数据关联方法、装置、计算设备及计算机存储介质

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