一种故障定位方法、装置及电子设备与流程

文档序号:18522916发布日期:2019-08-24 09:58阅读:144来源:国知局
一种故障定位方法、装置及电子设备与流程

本申请实施例涉及故障诊断领域,特别涉及一种故障定位方法、装置及电子设备。



背景技术:

对于外卖系统等功能较多的采用分布式场景部署的业务系统而言,通常具有业务关系复杂、子系统繁多、系统间的调用链条较长等特点。具体的,业务系统中存在大量的节点,某些节点之间具有调用关系,其中,节点可以为:接口(即一段具体代码方法)、服务(即实现某种功能的代码,包括多个接口或方法)、或数据库等。

当业务系统发生故障时,现有技术中采用人工排查的方式来定位产生故障根因的节点。而由于在业务系统发生故障期间,告警信息井喷,大量有用信息被淹没,使得人工方式进行故障定位的定位时间较长且难度较大,进而导致mttr(meantimetorestoration,平均恢复时间)恶化为分钟级、甚至小时级。

可见,如何快速有效地定位出业务系统中产生故障根因的节点,是一个亟待解决的问题。



技术实现要素:

有鉴于此,本申请实施例提供一种故障定位方法、装置及电子设备,以快速有效地定位出业务系统中产生故障根因的节点。

具体地,本申请实施例是通过如下技术方案实现的:

第一方面,本申请实施例提供了一种故障定位方法,包括:

获得业务系统中各个节点所对应的性能指标的目标指标值;

基于所获得的目标指标值和各个性能指标所对应的基线数据,计算各个节点的异常评估分数;

当基于所述异常评估分数判断出所述业务系统中存在至少一个目标节点时,基于所述至少一个目标节点所在的目标节点链路,从所述至少一个目标节点中确定产生故障根因的节点;

其中,所述目标节点为异常评估分数符合预设异常条件的节点。

可选地,所述获得业务系统中各个节点所对应的性能指标的目标指标值的步骤,包括:

周期性获得业务系统中各个节点所对应的性能指标的目标指标值。

可选地,所述基于所获得的目标指标值和各个性能指标所对应的基线数据,计算各个节点的异常评估分数的步骤,包括:

针对每一性能指标,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数;

针对每一节点,基于该节点所对应的各个性能指标的异常评估分数,计算该节点的异常评估分数。

可选地,所述针对每一性能指标,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数的步骤,包括:

针对每一性能指标,利用预设的异常评估模型,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数;

其中,所述异常评估模型为:

gi=fi*fi

其中,fi=|ci-mi|/mi,gi为性能指标i的异常评估分数,fi为性能指标i所对应的预设基本分数,ci为性能指标i的目标指标值,mi为性能指标i所对应的基线数据。

可选地,所述基于所述至少一个目标节点所在的目标节点链路,从所述至少一个目标节点中确定产生故障根因的节点的步骤,包括:

确定所述至少一个目标节点所在的目标节点链路;

针对于每一目标节点链路,当该目标节点链路中存在一个目标节点时,将所存在的一个目标节点确定为产生故障根因的节点;当该目标节点链路中存在至少两个目标节点时,将所存在的至少两个目标节点中的处于最下游的节点确定为产生故障根因的节点。

可选地,所述基于所述至少一个目标节点所在的目标节点链路,从所述至少一个目标节点中确定产生故障根因的节点的步骤,包括:

确定所述至少一个目标节点所在的目标节点链路;

通过输出所述目标节点链路对应的链路图,引导管理人员从所述至少一个目标节点中确定产生故障根因的节点;其中,所述链路图中目标节点突出显示。

可选地,任一性能指标所对应的基线数据的计算方式,包括:

获得该性能指标所对应的历史指标值;

剔除所述历史指标值中的异常指标值,得到有效指标值;

按照该性能指标所对应的基线计算算法,基于所述有效指标值计算该性能指标所对应的基线数据。

第二方面,本申请实施例提供了一种故障定位装置,包括:

目标指标值获得单元,用于获得业务系统中各个节点所对应的性能指标的目标指标值;

节点分数计算单元,用于基于所获得的目标指标值和各个性能指标所对应的基线数据,计算各个节点的异常评估分数;

故障定位单元,用于当基于所述异常评估分数判断出所述业务系统中存在至少一个目标节点时,基于所述至少一个目标节点所在的目标节点链路,从所述至少一个目标节点中确定产生故障根因的节点;

其中,所述目标节点为异常评估分数符合预设异常条件的节点。

可选地,所述目标指标值获得单元包括:

指标值获得子单元,用于周期性获得业务系统中各个节点所对应的性能指标的目标指标值。

可选地,所述节点分数计算单元包括:

指标分数计算子单元,用于针对每一性能指标,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数;

节点分数计算子单元,用于针对每一节点,基于该节点所对应的各个性能指标的异常评估分数,计算该节点的异常评估分数。

可选地,所述故障定位单元包括:

链路确定子单元,用于确定所述至少一个目标节点所在的目标节点链路;

第一定位子单元,用于针对于每一目标节点链路,当该目标节点链路中存在一个目标节点时,将所存在的一个目标节点确定为产生故障根因的节点;当该目标节点链路中存在至少两个目标节点时,将所存在的至少两个目标节点中的处于最下游的节点确定为产生故障根因的节点。

可选地,所述故障定位单元包括:

链路确定子单元,用于确定所述至少一个目标节点所在的目标节点链路;

第二定位子单元,用于通过输出所述目标节点链路对应的链路图,引导管理人员从所述至少一个目标节点中确定产生故障根因的节点;其中,所述链路图中目标节点突出显示。

第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面所提供的故障定位方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述第一方面所提供的故障定位方法。

本申请实施例所提供的方法中,基于各个节点对应的性能指标的目标指标值和基线数据,对各个节点进行异常评分,得到存在异常的至少一个目标节点,而考虑到节点之间的调用关系,基于至少一个目标节点所在的目标节点链路,从至少一个目标节点中确定产生故障根因的节点。可见,通过本方案可以快速有效地定位出业务系统中产生故障根因的节点。

附图说明

图1为本申请实施例所提供的一种故障定位方法的流程图;

图2为本申请实施例所提供的一种故障定位装置的结构示意图;

图3为本申请实施例所提供的一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了快速有效地定位出业务系统中产生故障根因的节点,本申请实施例提供了一种故障定位方法、装置及电子设备。

下面首先对本申请实施例所提供的一种故障定位方法进行介绍。

需要说明的是,本申请实施例所提供的一种故障定位方法的执行主体可以为一种故障定位装置。其中,该故障定位装置可以运行于电子设备中,而在具体应用中,该电子设备可以为终端设备或服务器,这都是合理的。

另外,基于业务系统中各个节点的调用关系,可以预先构建该业务系统的多条节点链路,任一节点链路中的节点存在调用关系。其中,节点可以为接口、服务或数据库等;而节点链路可以通过人工方式构建,当然并不局限于此。具体的,接口为一段具体代码方法;而服务为实现某种功能的代码,可以包括多个接口或方法。

并且,需要强调的是,本申请实施例所涉及的业务系统并不局限于外卖系统,对于存在多个节点且多个节点间存在调用关系的任何业务系统,均可以利用本申请实施例所提供的故障定位方法进行故障定位。

如图1所示,本申请实施例所提供的一种故障定位方法,可以包括如下步骤:

s101,获得业务系统中各个节点所对应的性能指标的目标指标值;

考虑到节点所对应的性能指标的指标值是评判节点是否发生故障的重要因素,也就是,在故障发生时节点所对应的性能指标的指标值会发生变化,因此,本申请实施例中,该故障定位装置可以获得业务系统中各个节点所对应的性能指标的目标指标值,进而基于所获得的目标指标值执行后续的处理。

可以理解的是,任一个节点可以对应一个性能指标或多个性能指标,不同类型的节点所对应的性能指标的数量及具体类型可以不同或相同,而同一类型的节点所对应的性能指标的数量及具体类型可以相同或不同。并且,在具体应用中,各个类型的节点所对应的性能指标可以根据实际情况设定。举例而言:

接口所对应的性能指标可以为tp99、qpm(queryperminute,每分钟查询率)、失败率、异常数等中的一项或多项;

数据库所对应的性能指标可以为:异常数、失败率、avg(average,平均耗时)、qpm中的一项或多项;

服务所对应的性能指标可以为:异常数、失败率、avg、qpm等中的一项或多项;

其中,tp99为:满足百分之九十九的网络请求所需要的最低耗时;失败率为:调用失败的次数/调用总次数;异常数为:调用失败的次数。

另外,需要说明的是,在一种具体实现方式中,该故障定位装置当接收到关于该业务系统的报警消息时,可以执行获得业务系统中各个节点所对应的性能指标的目标指标值,即接收到关于该业务系统的报警消息为所述获得业务系统中各个节点所对应的性能指标的目标指标值的步骤的触发条件。

而为了进一步提升故障定位效率,在另一种具体实现方式中,该故障定位装置可以周期性获得业务系统中各个节点所对应的性能指标的目标指标值,也就是说,该故障定位装置对业务系统进行监控,这样,如果业务系统发生故障,在接收到关于该业务系统的报警信息的前期或同时,该故障定位装置可以完成故障的定位,大大提升了故障定位效率,同时避免了某些误报警而引发的故障定位过程。可以理解的是,在具体应用中,该故障定位装置可以每隔预定分钟执行获得业务系统中各个节点所对应的性能指标的目标指标值的步骤,即分钟级的周期性;当然,也可以每隔预定小时执行获得业务系统中各个节点所对应的性能指标的目标指标值的步骤,即小时级的周期性,等等。

并且,该故障定位装置获得业务系统中各个节点所对应的性能指标的目标指标值的具体获得方式存在多种。其中,该故障定位装置可以自行从各个节点处采集性能指标的目标指标值,例如:读取各个节点的相关日志信息;或者,该故障定位装置可以通过网络爬虫从各个节点处采集性能指标的目标指标值,其中,网络爬虫可以实时从各个节点处采集性能指标的指标值并进行存储,而该故障定位装置在需要故障定位时从所存储的数据中读取目标指标值,等等。

s102,基于所获得的目标指标值和各个性能指标所对应的基线数据,计算各个节点的异常评估分数;

在获得各个节点所对应的性能指标的目标指标值后,该故障定位装置可以基于所获得的目标指标值和各个性能指标所对应的基线数据,计算各个节点的异常评估分数。其中,任一性能指标所对应的基线数据用于表征该性能指标的正常水平值,可以理解的是,任一性能指标的实际的指标值可以高于或低于基线数据一定幅度。

可选地,所述基于所获得的目标指标值和各个性能指标所对应的基线数据,计算各个节点的异常评估分数的步骤,可以包括:

针对每一性能指标,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数;

针对每一节点,基于该节点所对应的各个性能指标的异常评估分数,计算该节点的异常评估分数。

其中,在计算每一节点的异常评估分数时,可以将该节点所对应的各个性能指标的异常评估分数相加,得到该节点的异常评估分数;也可将该节点所对应的各个性能指标的异常评估分数加权相加,得到该节点的异常评估分数。需要说明的是,对该节点所对应的各个性能指标的异常评估分数加权相加所利用的权重值,可以为根据经验值确定的值,在此不做限定。

可以理解的是,目标指标值偏离基线数据的程度越大表明性能指标异常程度越严重,从而节点异常程度越严重,即目标指标值偏离基线数据的程度值与性能指标的异常程度值、节点的异常程度值线型相关。而为了通过分数表征异常程度值,本申请实施例中,首先为各个性能指标预先设定基本分数,进而利用基本分数和目标指标值偏离基线数据的程度值两个元素来计算性能指标、节点异常评估分数。具体的,所述针对每一性能指标,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数的步骤,可以包括:

针对每一性能指标,利用预设的异常评估模型,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数;

其中,该异常评估模型为:

gi=fi*fi

其中,fi=|ci-mi|/mi,gi为性能指标i的异常评估分数,fi为性能指标i所对应的预设基本分数,ci为性能指标i的目标指标值,mi为性能指标i所对应的基线数据。

可以理解的是,任一性能指标所对应的预设基本分数可以根据具体情况进行设定,本申请对此不作限定。

需要说明的是,任一性能指标所对应的基线数据可以固定不变,也可以定期更新。另外,任一性能指标所对应的基线数据可以根据经验值来设定。当然,任一性能指标所对应的基线数据也可以由该故障定位装置根据历史数据计算得出,具体的,任一性能指标所对应的基线数据的计算方式,可以包括:

获得该性能指标所对应的历史指标值;

剔除历史指标值中的异常指标值,得到有效指标值;

按照该性能指标所对应的基线计算算法,基于所述有效指标值计算该性能指标所对应的基线数据。

需要强调的是,不同的性能指标所对应的异常指标值剔除算法不同,类似的,不同的性能指标所对应的基线计算算法可以不同。其中,对于无周期性规律的性能指标而言,在剔除异常指标值时,所采用的异常数据处理算法可以为mad(medianabsolutedeviation,平均绝对离差)算法;而在计算基线数据时,所采用的基线计算算法可以为四分位算法,当然并不局限于此。而对于周期性规律的性能指标而言,在剔除异常指标值时,所采用的异常数据处理算法可以为mad算法;而在计算基线数据时,所采用的基线计算算法可以为kσ偏差算法,当然并不局限于此。举例而言:tp99的指标值无特定规律,可以利用mad算法剔除异常指标值,采用四分位方法计算基线数据;而qpm的指标值分布具有周期性,可以利用mad算法剔除异常指标值,采用kσ偏差算法计算基线数据。其中,mad(medianabsolutedeviation,平均绝对离差)简称平均离差,具体的,当总体的单位数为n时,有变量x1,x2,x3,……,xn-1,xn,各项变量与总体平均数之差叫离差,平均绝对离差定义为各数据与平均值的离差的绝对值的平均数。其中,四分位算法也叫箱型图,是利用数据中的第一四分位数、中位数、第三四分位数等统计量来描述数据的整体分布情况,通过这些统计量来计算数据的上下边界值作为基线值。其中,对于kσ偏差算法而言,k可以根据场景进行设定,以k=3为例介绍下该种偏差算法,具体为:先假设一组检测数据服从正态分布或近似正态分布,结合统计学知识计算其均值与标准差,根据正态分布的数据分布特性来确定基线值。

另外,可以理解的是,可以根据性能指标的指标值分布情况来确定是根据经验值来设定基线数据,还是根据历史数据计算得到基线数据。

需要强调的是,上述所给出的基于所获得的目标指标值和各个性能指标所对应的基线数据,计算各个节点的异常评估分数的具体实现方式仅仅作为示例,并不应该构成对本申请实施例的限定。

s103,当基于该异常评估分数判断出该业务系统中存在至少一个目标节点时,基于该至少一个目标节点所在的目标节点链路,从该至少一个目标节点中确定产生故障根因的节点。

其中,该目标节点为异常评估分数符合预设异常条件的节点。

在计算得到各个节点的异常评估分数后,可以判断各个节点的异常评估分数是否符合预设异常条件,从而得到符合预设异常条件的目标节点,其中,由于目标节点符合预设异常条件,因此,目标节点为存在故障的节点。进而,当基于该异常评估分数判断出该业务系统中存在至少一个目标节点时,表明业务系统发生故障,因此,该故障定位装置基于该至少一个目标节点所在的目标节点链路,从该至少一个目标节点中确定产生故障根因的节点。其中,预设异常条件可以为:高于预定分数阈值,当然并不局限于此;并且,该预定分数阈值可以为0,或大于0的分数值,可以根据具体情况设定。

可选地,在一种具体实现方式中,所述基于该至少一个目标节点所在的目标节点链路,从该至少一个目标节点中确定产生故障根因的节点的步骤,可以包括:

确定该至少一个目标节点所在的目标节点链路;

针对于每一目标节点链路,当该目标节点链路中存在一个目标节点时,将所存在的一个目标节点确定为产生故障根因的节点;当该目标节点链路中存在至少两个目标节点时,将所存在的至少两个目标节点中的处于最下游的节点确定为产生故障根因的节点。

需要强调的是,对于一条节点链路而言,多个节点中的最下游节点为:自身发生变动能够影响该多个节点中其他节点的节点,例如:多个节点中属于调用最底层的节点。举例而言:多个节点:a、b、c和d,假设a被b、c和d调用,则,a为该多个节点中的最下游节点。

另外,由于一个节点可以位于多条节点链路中,因此,在确定该至少一个目标节点所在的目标节点链路时,可以确定该至少一个目标节点所在的属于核心链路的目标节点链路,其中,所谓的核心链路为管理人员较为关注的链路或者在业务系统中较为重要的链路,其中核心链路可以人工设定,也可以系统自行分析设定。

可选地,在另一种具体实现方式找那个,所述基于该至少一个目标节点所在的目标节点链路,从该至少一个目标节点中确定产生故障根因的节点的步骤,可以包括:

确定该至少一个目标节点所在的目标节点链路;

通过输出该目标节点链路对应的链路图,引导管理人员从该至少一个目标节点中确定产生故障根因的节点;其中,该链路图中目标节点突出显示。

其中,可以通过颜色来突出显示目标节点,当然并不局限于此。并且,当通过颜色来突出显示目标节点时,在不同于其他正常的节点的图标的颜色的前提下,各个目标节点的图标可以具有相同颜色,也可以具有不同颜色。可以理解的是,在具体应用中,为了达到较好的区分效果以及了解到异常程度,对于异常评估分数高于预定值的目标节点,图标的颜色可以设置为红色,而对于异常评估分数低于预定值的目标节点,图标的颜色可以设定为黄色,以使得管理人员可以通过颜色的醒目度来了解到目标节点的异常程度。

另外,该故障定位装置可以直接输出链路图,也可以输出链路图对应的链接信息,当然并不局限于此。并且,对于输出链接信息的方式,管理人员可以点击链接信息,进入到链路图的展示界面,从而管理人员可以查看到链路图。

本申请实施例所提供的方法中,基于各个节点对应的性能指标的目标指标值和基线数据,对各个节点进行异常评分,得到存在异常的至少一个目标节点,而考虑到节点之间的调用关系,基于至少一个目标节点所在的目标节点链路,从至少一个目标节点中确定产生故障根因的节点。可见,通过本方案可以快速有效地定位出业务系统中产生故障根因的节点。

相应于上述方法实施例,本申请实施例还提供了一种故障定位装置。如图2所示,该故障定位装置可以包括:

目标指标值获得单元210,用于获得业务系统中各个节点所对应的性能指标的目标指标值;

节点分数计算单元220,用于基于所获得的目标指标值和各个性能指标所对应的基线数据,计算各个节点的异常评估分数;

故障定位单元230,用于当基于所述异常评估分数判断出所述业务系统中存在至少一个目标节点时,基于所述至少一个目标节点所在的目标节点链路,从所述至少一个目标节点中确定产生故障根因的节点;

其中,所述目标节点为异常评估分数符合预设异常条件的节点。

本申请实施例所提供的装置,基于各个节点对应的性能指标的目标指标值和基线数据,对各个节点进行异常评分,得到存在异常的至少一个目标节点,而考虑到节点之间的调用关系,基于至少一个目标节点所在的目标节点链路,从至少一个目标节点中确定产生故障根因的节点。可见,通过本方案可以快速有效地定位出业务系统中产生故障根因的节点。可选地,所述目标指标值获得单元210可以包括:

指标值获得子单元,用于周期性获得业务系统中各个节点所对应的性能指标的目标指标值。

可选地,所述节点分数计算单元220可以包括:

指标分数计算子单元,用于针对每一性能指标,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数;

节点分数计算子单元,用于针对每一节点,基于该节点所对应的各个性能指标的异常评估分数,计算该节点的异常评估分数。

可选地,所述指标分数计算子单元具体用于:

针对每一性能指标,利用预设的异常评估模型,基于该性能指标的目标指标值和所对应的基线数据,计算该性能指标的异常评估分数;

其中,所述异常评估模型为:

gi=fi*fi

其中,fi=|ci-mi|/mi,gi为性能指标i的异常评估分数,fi为性能指标i所对应的预设基本分数,ci为性能指标i的目标指标值,mi为性能指标i所对应的基线数据。

可选地,所述故障定位单元230可以包括:

链路确定子单元,用于确定所述至少一个目标节点所在的目标节点链路;

第一定位子单元,用于针对于每一目标节点链路,当该目标节点链路中存在一个目标节点时,将所存在的一个目标节点确定为产生故障根因的节点;当该目标节点链路中存在至少两个目标节点时,将所存在的至少两个目标节点中的处于最下游的节点确定为产生故障根因的节点。

可选地,所述故障定位单元230可以包括:

链路确定子单元,用于确定所述至少一个目标节点所在的目标节点链路;

第二定位子单元,用于通过输出所述目标节点链路对应的链路图,引导管理人员从所述至少一个目标节点中确定产生故障根因的节点;其中,所述链路图中目标节点突出显示。

另外,对应于上述的故障定位方法,本申请实施例还提出了一种电子设备。请参考图3,在硬件层面,该电子设备包括处理器310、内部总线320、网络接口330、内存340以及非易失性存储器350,当然还可能包括其他业务所需要的硬件。处理器310从非易失性存储器350中读取对应的计算机程序到内存340中然后运行以执行本申请所提供的故障定位方法,在逻辑层面上形成一种故障定位装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

另外,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的故障定位方法。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1