基于应用知识图谱的实时根因分析方法转让专利

申请号 : CN202110568306.7

文献号 : CN113032238B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵杰

申请人 : 南昌惠联网络技术有限公司

摘要 :

本发明公开了一种基于应用知识图谱的实时根因分析方法,通过构建应用知识图谱,实现对运维对象KPI指标的实时检测和根因分析。所用核心方法包括:基于关键指标选择和Bagel检测的多指标异常检测方法;跨层的应用知识图谱异常推理;故障链剪枝;基于相似性算法的实例级根因分析。有益效果在于:能够定位到系统故障的根本原因,且具有可扩展性,满足生产服务的要求。

权利要求 :

1.一种基于应用知识图谱的实时根因分析方法,其特征在于包括:构建运维对象的应用知识图谱,构建运维对象结构体,将应用的各个运维对象按相互关系有机的联系在一起,以支持后续的根因推断;

构建KPI指标,构建应用场景的四类黄金指标,包括业务量、成功率、延迟和TPS,其中业务量代表流入系统的请求数量,成功率指代表请求流出系统成功的比例,延迟代表系统处理请求的性能,TPS为系统吞吐量,代表系统当前能够处理的请求数量;

多指标异常检测,通过多指标异常检测算法对运维对象的KPI指标实时检测,其中,所述算法包括:利用历史数据,通过PCA模型,选择出在应用场景中造成影响的关键指标;实时将选择出的关键指标输入到使用历史数据训练好的Bagel神经网络中,对各层的运维对象进行同步异常检测,检测后返回各个运维对象的实时异常情况、异常开始时间和异常打分;

基于应用知识图谱的异常链推理,通过构建的应用知识图谱,从应用服务层级的异常入口,推理异常传播的路径,同时对每条传播路径根据路径深度、异常等级、持续时间给予评分;

故障链剪枝,利用异常链推理后形成的按链接权重排列的多条故障链,根据不同层级运维对象异常的相似性,计算异常的关联性,以合并相似的故障链,同时判定、排除分值较低的疑似故障链;

判断根因,根据异常点在应用知识图谱的路径深度、特征相似的程度,通过对故障链的权重计算,确定根因疑似的位置;

实例级关联分析,在将疑似根因定位到服务、中间件、主机层级之后,针对多个实例的异常,根据服务与实例的异常指标在时间窗口内的曲线特性、异常点特征的相似性,计算其相关性分数,并通过与预设的阈值thins相比较确定最终的一个或者多个故障根因,根据定位的对应实例或服务的异常,确定为应用系统的根因异常,之后,调用故障解决方案知识库,输出根因解决方案。

2.根据权利要求1所述的基于应用知识图谱的实时根因分析方法,其特征在于,应用场景包含应用服务、中间件、数据库、主机层级结构,每个层级结构包含多个能够独立部署服务的实体,亦即运维对象。

3.根据权利要求1所述的基于应用知识图谱的实时根因分析方法,其特征在于,运维对象的结构体包括实体E、属性A和关系R。

4.根据权利要求1所述的基于应用知识图谱的实时根因分析方法,其特征在于,用于多指标异常检测的Bagel神经网络模型采用CAVE算法。

说明书 :

基于应用知识图谱的实时根因分析方法

技术领域

[0001] 本发明涉及数据业务支撑的网络信息管理技术领域,尤其涉及一种基于应用知识图谱的实时根因分析方法。

背景技术

[0002] 随着云平台、5G、物联网等基础设施的发展,容器化、面向服务、分布式架构等应用体系的应用,IT运维管理对象的模块、依赖场景越来越复杂。在复杂系统中,IT运管对象涉
及应用服务、中间件、主机、网络等多个层级,包含调用、依赖关系的多个运维对象。当复杂
系统存在异常或故障时,针对运维对象KPI异常的检测能力和根因分析能力不足,已经成为
运维工作的核心痛点之一。
[0003] 在针对此问题的现有专利中,专利号CN110888755A提出的主要方案为:基于依赖关系拓扑,通过算法对待定根因节点基于影响力排序,实现根因分析。专利号CN111190756A
的主要方案为:基于算法,对时间窗口的调用链数据进行异常检测;将异常、正常请求的服
务实例KPI、实例间依赖关系输入自定义方阵迭代计算得到服务实例异常、正常得分;结合
服务实例异常得分和正常得分,采用频谱方法计算每个服务实例的最终得分,并根据最终
得分高低返回可疑服务实例列表。
[0004] 以上所述现有应用场景下的故障根因分析方法,主要存在两个问题:运维对象KPI指标巨大,实时检测性能不足,缺乏在复杂系统中实时定位根因的能力;推理能力不足,没
有建立异常的传播链,当多个运维对象出现异常时,无法提高故障定位效率。

发明内容

[0005] 针对上述现有技术存在的缺陷,本发明提出了一种基于应用知识图谱的实时根因分析方法,是一种面向应用场景的通用故障根因分析方案,通过构建应用知识图谱,实现对
运维对象KPI指标的实时检测和根因分析,定位系统故障的根本原因,且具有可扩展性,能
够满足生产服务的要求。
[0006] 本发明的技术方案是这样实现的:
[0007] 一种基于应用知识图谱的实时根因分析方法,具体包括:
[0008] 构建运维对象的应用知识图谱,构建运维对象结构体,将应用的各个运维对象按相互关系有机的联系在一起,以支持后续的根因推断;
[0009] 构建KPI指标,构建应用场景的四类黄金指标,包括业务量、成功率、延迟和TPS,其中业务量代表流入系统的请求数量,成功率代表请求流出系统成功的比例,延迟代表系统
处理请求的性能,TPS为系统吞吐量,代表系统当前能够处理的请求数量;
[0010] 多指标异常检测,通过多指标异常检测算法对运维对象的KPI指标实时检测,其中,所述算法包括:利用历史数据,通过PCA模型,选择出在应用场景中造成影响的关键指
标;实时将选择出的关键指标输入到使用历史数据训练好的Bagel神经网络中,对各层的运
维对象进行同步异常检测,检测后返回各个运维对象的实时异常情况、异常开始时间和异
常打分;
[0011] 基于应用知识图谱的异常链推理,通过构建的应用知识图谱,从应用服务层级的异常入口,推理异常传播的路径,同时对每条传播路径根据路径深度、异常等级、持续时间
给予评分;
[0012] 故障链剪枝,利用异常链推理后形成的按链接权重排列的多条故障链,根据不同层级运维对象异常的相似性,计算异常的关联性,以合并相似的故障链,同时判定、排除分
值较低的疑似故障链;
[0013] 判断根因,根据异常点在应用知识图谱的路径深度、特征相似的程度,通过对故障链的权重计算,确定根因疑似的位置;
[0014] 实例级关联分析,在将疑似根因定位到服务、中间件、主机层级之后,针对多个实例的异常,根据服务与实例的异常指标在时间窗口内的曲线特性、异常点特征的相似性,计
算其相关性分数,并通过与预设的阈值thins相比较确定最终的一个或者多个故障根因,根
据定位的对应实例或服务的异常,确定为应用系统的根因异常,之后,调用故障解决方案知
识库,输出根因解决方案。
[0015] 在本发明中,应用场景包含应用服务、中间件、数据库、主机层级结构,每个层级结构包含多个能够独立部署服务的实体,亦即运维对象;
[0016] 在本发明中,运维对象的结构体包括实体E、属性A和关系R;
[0017] 在本发明中,用于多指标异常检测的Bagel神经网络模型采用CAVE算法。
[0018] 相对现有技术,本发明所提技术方案的优势主要有四个方面:
[0019] 一、扩展性。本发明采用通用的黄金指标和应用拓扑作为根因分析的基础,因此本发明技术方案适用于具有应用服务、中间件、数据库、主机结构的通用场景,该抽象场景具
有一定的普适性,基于该模型的根因分析具备较强的使用扩展能力;
[0020] 二、推理能力。相对采用算法计算异常根因,基于应用知识图谱,利用运维实体、属性和关系形成推理能力,对于复杂业务场景下,异常的传播关系建立、异常根因的确定,具
备普适性的推理能力;
[0021] 三、相比于现有的多指标异常检测算法仅能确定多个指标是否发生异常,不能确定发生异常的位置,本发明提出的从业务分段定位至实例的故障定位方式,能够有效对业
务指标异常的场景进行故障定位,定位到导致业务指标发生故障的根本原因实例;
[0022] 四、实时性。相对于大规模使用异常检测算法的技术方案,本发明利用应用知识图谱推理、故障链剪枝的方法,提高根因分析性能和准确度,能够满足生产环境下故障根因分
析的需求,具有较好的实时性。

附图说明

[0023] 图1为本发明提出的基于应用知识图谱的实时根因分析方法的流程示意图;
[0024] 图2为本发明中Bagel模型检测的流程示意图;
[0025] 图3为本发明中基于应用知识图谱的异常链推理的流程示意图;
[0026] 图4为本发明中故障链剪枝的流程示意图;
[0027] 图5为本发明中对故障链权重计算的流程示意图;

具体实施方式

[0028] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0029] 如图1所示,图1为本发明提出的这种基于应用知识图谱的实时根因分析方法的流程示意图,具体包括:
[0030] 步骤S1:设计运维对象的KPI指标。在应用场景中,通常选择四类黄金指标作为异常检测对象,黄金四指标为业务量、成功率、延迟和TPS,其中,业务量代表流入系统的请求
数量,成功率指代表请求流出系统成功的比例;延迟代表系统处理请求的性能,TPS代表系
统当前能够处理的请求;
[0031] 所述运维对象是应用场景包含的应用服务、中间件、数据库、主机等层级结构中,每个层级结构包含的多个能够独立部署服务的实体;构建所述运维对象的应用知识图谱,
构建运维对象结构体,将应用的各个运维对象有机的联系在一起,以支持后续的根因推断。
[0032] 步骤S2:多指标异常检测。该步骤包括:
[0033] 针对四类黄金指标,利用历史数据,通过PCA模型,选择出在应用场景中造成影响的主指标;
[0034] 实时将选择出的关键指标输入到使用历史数据训练好的Bagel神经网络中,对各层的运维对象同步异常检测,检测后返回各个运维对象实时异常情况、异常开始时间和异
常打分。
[0035] 其中,Bagel模型检测的流程如图2所示,过程包括:
[0036] 主指标KPI,经过数据补齐、EWMA划分,形成待检测的KPI序列;
[0037] 同步地,将时间信息编码输入检测模型;
[0038] 最后经过CVAE算法,最终得到异常时间、异常对象、对KPI的异常打分等。
[0039] 步骤S3:基于应用知识图谱的异常链推理。通过构建的应用知识图谱,从应用服务层级的异常入口,推理异常传播的路径,同时对每条传播路径根据路径深度、异常等级、持
续时间给予评分。具体流程如图3:
[0040] 一个运维对象异常表达为{E,Sym,Prop},其中E是Entity,指运维对象;Sym是异常结构体,形如{Kpi,St,Kt},其中Kpi为异常指标,St为异常开始时间,Kt为异常持续时间;
Prop是传播结构体,形如{E,Relation};
[0041] 在S301中,从应用场景的运维对象E1中检测出异常,表达该异常运维对象为{Ei,Symi,Prop},i=1;
[0042] 在S302中,根据已经构建的应用知识图谱,遍历与运维对象Ei具有调用、连接、包含等关系的所有运维对象,查找其中具有相同异常KPI的En;
[0043] 在S303中,构建Ei到En的链接,形如({Ei,Symi,Prop},……,{En,Symn,Prop}),根据链接关系的不同,记录链接权重为win;
[0044] 在S304中,再从En节点开始,重复步骤S302,继续遍历,直到对应节点到达实例、主机层级;
[0045] 在S305中,形成多条基于应用知识图谱的故障链,形如({Ei=1,Symi=1,Prop},{Ei=2,Symi=2,Prop},……{Ei=n,Symi=n,Prop })的运维对象故障链向量,和形如(w12,w13,……,win)
的链接权重向量。
[0046] 步骤S4:故障链剪枝。经过步骤S3后,形成按照链接权重排列的多条故障链,在复杂系统中,通常存在多条故障链、多个异常点。故障链剪枝可根据不同层级运维对象异常的
相似性,计算异常的关联性,以合并相似的故障链,同时判定、排除分值较低的疑似故障链,
提高故障根因分析的效率和准确性。具体流程如图4:
[0047] 在S401中,选取故障链({Ei=1,Symi=1,Prop},{Ei=2,Symi=2,Prop},……{Ei=n,Symi=n,Prop }),将Sym1到Symn的持续时间作为时间窗口T;
[0048] 在S402中,在异常持续的时间窗口T内,进行局部异常特征提取,利用EWMA方法提取局部平滑特征,提取公式如下:ewma(t)= λKpi(t)+(1‑λ)ewma(t‑1)
[0049] 其中,Kpi(t)是当前t时间下异常指标的实际测量值,ewma(t)为t时间下异常指标的指数加权平均数,0<λ<1是平滑系数,越接近当前时刻越接近1;
[0050] 在S403中,针对故障链上具有调用、连接、包含关系的运维对象,将S402提取的特征带入公式计算相关性,对于相关性小于预设阈值的,作为剪枝备选;所述相似性计算公式
如下:Score(A,B)= α×Similarity{Fearure(A), Fearure(B)},其中,A,B是具备关系的两
个运维对象,α是相关系数,根据调用、连接、包含的不同关系取不同的权重,Fearure(A)、
Fearure(B)分别指对象A、B的EMWA特征序列;
[0051] 在S404中,重复S303,计算各故障链上不同层级对象异常的相似性,当相似性小于阈值,对当前故障链剪枝;
[0052] 在S405中,将剪枝后留下的故障链,作为备选故障根因推断的选项。
[0053] 步骤S5:根据异常点在应用知识图谱的路径深度、特征相似的程度,通过对故障链的权重计算,确定根因疑似的位置。对故障链的权重计算如图5:
[0054] 在S501中,按照故障链的深度计算故障链分数,运用公式如下:
[0055]
[0056] 其中,故障链i的分数Score(Fault_linki)由两部分构成,一个是Score_Deep(Fault_linki),用来代表故障的拓扑层次深度;一个是:
[0057] ,
[0058] 表示故障链上所有运维对象异常的评分,每个异常点评分是st(异常开始时间),type(异常类型),probability(异常发生概率)的函数;
[0059] 在S502中,根据各故障链的评分,取分数最高的top3,作为备选故障根因。
[0060] 步骤S6:在通过步骤S5将故障根因定位到服务、中间件或主机层级之后,针对多个实例的异常,根据服务与实例的异常指标在时间窗口内的曲线特性、异常点特征相似性,计
算相关性分数,并根据与阈值thins相比较确定最终的一个或者多个故障根因,若单个或多
个实例异常分数大于thins,则对应实例为故障根因;若所有实例异常分数大于thins,则为服
务故障;
[0061] 以数据库和其实例为例,确定实例异常分数的公式如下:
[0062] Score(InstanceX)=β×AnomalyDetection{Feature(InstanceX)}+(1‑β)×Similarity{Feature(InstanceX),Feature(Server) }
[0063] 其中,实例X的异常分数Score(InstanceX)由两部分构成,AnomalyDetection{Feature(InstanceX)}是实例本身的异常检测分数,Similarity{Feature(instanceX),
Feature(Server)}是实例X与服务的异常点特征序列相似性,β为配置权重。
[0064] 在完成以上步骤后,根据定位的对应实例或服务异常,确定为应用系统的根因异常,之后,调用故障解决方案知识库,输出对应根因的解决方案。
[0065] 综上所述,本发明所提出的方案要解决的技术问题包含以下几个方面:
[0066] 扩展性:当前的专利方案,聚焦在数据库、应用的细分场景,缺乏对场景的抽象,导致专利的适用场景较为狭窄,缺乏扩展性;
[0067] 只检测、不定位:当前专利异常检测算法,只是检测KPI指标是否存在异常,对于引发故障的来源位置没有明确的描述,不能满足故障定位场景的需求;
[0068] 根因分析的实时性:应用系统的KPI数量巨大,异常点多,且形态多变,如何对异常导致的故障链正确剪枝,从而具备复杂系统中实时定位的能力,是当前较大的挑战;
[0069] 推理能力:现在的专利,聚焦在用算法检测异常,对于异常之间的传播、影响缺乏分析和推理能力,难以建立异常的传播链,从表象中寻找异常根因。
[0070] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改,等同替换和改进等,均应包含在本发明的保护范围之内。