异常根因定位方法、模型、电子设备及计算机存储介质与流程

文档序号:24872527发布日期:2021-04-30 12:45阅读:200来源:国知局
异常根因定位方法、模型、电子设备及计算机存储介质与流程
本申请涉及计算机
技术领域
,特别是涉及一种异常根因定位方法、模型、电子设备及计算机存储介质。
背景技术
:为了维持和高网络服务的质量,许多大型互联网公司会持续记录各种多维度关键性能指标(kpi)。当某一个kpi偏离正常范围时,有效且高效地找到最有可能的根因是非常关键的。目前行业里,针对此类问题的较知名算法进行了研究。adtributor(多维根因分析)假设所有根因都是一维的,并使用“惊奇度”和“解释力”来量化根因的定义;但是,它假设根因是一维的,这不符合实际场景,因为来自实际运维场景的案例告诉我们,根因可能是多维度共同起作用的。idice(多维指标突变定位)聚焦于时间序列上的根因定位,而不是对某一个异常时间点的分析;它根据信息熵的思想,提出隔离能力来解释何为根因,即真正的根因的隔离能力大于所有它直接子节点和直接父节点的隔离能力值,但它为了降低复杂性,在定位过程中使用了很多暴力剪枝策略,这些策略在实际场景中是不可接受的,因为很容易在剪枝过程中丢失真正的根因。技术实现要素:本申请主要解决的技术问题是提供一种异常检测方法、装置、电子设备及计算机可读存储介质,能够对多维度指标进行的异常根因定位。为了解决上述问题,本申请第一方面提供了一种异常根因定位方法,所述方法包括:检测到多维度指标发生异常时,获取所有叶子节点在异常发生时间点所对应的指标数据的实际值以及在所述异常发生时间点之前所对应的指标数据的预测值;根据所述实际值和所述预测值,计算每个叶子节点对所述多维度指标发生异常的影响程度和贡献能力;选取所述影响程度和所述贡献能力满足预设条件的叶子节点作为候选节点,并将所有候选节点的集合转化为事务表;根据每个候选节点在所述事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,推荐所述多维度指标发生异常的第一根因节点。为了解决上述问题,本申请第二方面提供了一种异常根因定位模型,包括:数据获取模块,所述数据获取模块用于在检测到多维度指标发生异常时,获取所有叶子节点在异常发生时间点所对应的指标数据的实际值以及在所述异常发生时间点之前所对应的指标数据的预测值;计算模块,所述计算模块用于根据所述实际值和所述预测值,计算每个叶子节点对所述多维度指标发生异常的影响程度和贡献能力;事务表构建模块,所述事务表构建模块用于选取所述影响程度和所述贡献能力满足预设条件的叶子节点作为候选节点,并将所有候选节点的集合转化为事务表;根因推荐模块,所述根因推荐模块用于根据每个候选节点在所述事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,推荐所述多维度指标发生异常的第一根因节点。为了解决上述问题,本申请第三方面提供了一种电子设备,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现上述第一方面的异常根因定位方法。为了解决上述问题,本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令被处理器执行时实现上述第一方面的异常根因定位方法。本发明的有益效果是:区别于现有技术的情况,本申请在检测到多维度指标发生异常时,获取所有叶子节点在异常发生时间点所对应的指标数据的实际值以及在异常发生时间点之前所对应的指标数据的预测值,然后根据实际值和预测值,计算每个叶子节点对多维度指标发生异常的影响程度和贡献能力;通过选取影响程度和贡献能力满足预设条件的叶子节点作为候选节点,并将所有候选节点的集合转化为事务表,然后根据每个候选节点在事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,可以推荐多维度指标发生异常的第一根因节点。由于实践中异常定位面临数据量极大的问题,随着维度的增加,维度取值之间的笛卡尔积生成繁多的待考虑元素,通常只有一部分元素与异常根因相关,其他大量元素的kpi取值位于正常范围内,通过选取影响程度和贡献能力满足预设条件的叶子节点作为候选节点,快速舍弃了与根因无关的元素,考虑范围只剩下对异常定位有价值的叶子节点,从而可以实现根因快速定位;另外,通过将所有候选节点的集合转化为事务表,然后根据候选节点在事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,可以较为准确地推荐多维度指标发生异常的第一根因节点,从而实现对多维度指标进行异常根因定位。附图说明图1是本申请异常根因定位方法第一实施例的流程示意图;图2是图1中步骤s11一实施例的流程示意图;图3是图1中步骤s12一实施例的流程示意图;图4是本申请异常根因定位方法第二实施例的流程示意图;图5是本申请异常检测模型一实施例的框架示意图;图6是本申请电子设备一实施例的框架示意图;图7是本申请计算机可读存储介质一实施例的框架示意图。具体实施方式下面结合说明书附图,对本申请实施例的方案进行详细说明。以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。请参阅图1,图1是本申请异常根因定位方法第一实施例的流程示意图。具体而言,可以包括如下步骤:步骤s11:检测到多维度指标发生异常时,获取所有叶子节点在异常发生时间点所对应的指标数据的实际值以及在所述异常发生时间点之前所对应的指标数据的预测值。为了维持高网络服务的质量,在互联网服务运营过程中会持续记录各种多维度关键性能指标,当某一个多维度关键性能指标偏离正常范围时,如何有效且高效地找到最有可能的根因节点是非常关键的。具体地,在检测到多维度指标发生异常时,首先要获取所有叶子节点在异常发生时间点所对应的指标数据,这些采集于异常时刻的数据用于计算元素的异常取值,即叶子节点的实际值;除了在异常时间点对应的指标数据以外,还需要得到所有叶子节点在异常发生时间点之前所对应的指标数据,即获取正常时间点所对应的指标数据,这些采集于正常时刻的数据用于计算元素的理论正常取值,即叶子节点的预测值。在一个实施场景中,多维度指标可以包括秒开率、黑屏比、卡顿率中的至少一种。秒开率、黑屏比、卡顿率为音视频网络中核心的指标。请结合图2,图2是图1中步骤s11一实施例的流程示意图。在一个实施场景中,上述步骤s11具体可以包括:步骤s111:对所述多维度指标进行实时监测,获取所述多维度指标发生异常的时间点,作为所述异常发生时间点。在运维过程中,一般可以通过观众反馈或者用户上报的方式确认系统异常,即可以通过观众反馈或者上报获取到报障时间点,并根据报障时间点排除故障。然而,在真实运维场景中,一个多维度指标的异常从它发生到被人发现,其间往往存在一定长度的感知时间,感知时间越长,报障时间点相较实际的异常发生时间点越滞后,导致排障所需要分析的数据量也就越大,排障效率也就越低,甚至可能因时间不准确而得到错误的结论,因此得到一个准确的异常发生时间点对排障而言很是关键。多维度指标是音视频网络质量的一个直观体现,本申请可以通过对音视频网络的多维度指标进行实时监测,在获取到多维度指标异常时,分析出多维度指标异常发生后、其近邻时间内的一个起始突变点,即多维度指标发生突变的时间点,并将该时间点作为异常发生时间点。步骤s112:获取所有叶子节点在所述异常发生时间点所对应的原始指标数据,得到所有叶子节点在所述异常发生时间点所对应的所述指标数据的实际值。具体地,在检测到多维度指标发生异常时,首先要获取所有叶子节点在异常发生时间点所对应的指标数据,这些采集于异常时刻的数据用于计算元素的异常取值,即叶子节点的实际值,记作v(e)。步骤s113:获取所有叶子节点在所述异常发生时间点之前的n个时间点所对应的原始指标数据,对所述n个时间点所对应的原始指标数据进行预处理,得到所有叶子节点在所述异常发生时间点之前所对应的所述指标数据的预测值。除了在异常时间点对应的指标数据以外,还需要得到所有叶子节点在异常发生时间点之前的n个时间点所对应的指标数据,这些采集于正常时刻的数据用于计算元素的理论正常取值,即叶子节点的预测值,记作f(e)。在一实施例中,可以采用移动平均法或指数平滑法对所述n个时间点所对应的原始指标数据进行处理。具体地,预测值的计算可采用移动平均法或指数平滑法等方法,此处可根据多维度指标的特点(是否剧烈抖动、采集时间间隔等)设定参数n的大小,例如,一般对于分钟级的数据,可以采取移动平均法、n=4的设置。另外,在定位异常的过程中,需要使用预测值判断某一个元素本身的异常程度,以及它和整体异常的相关性,因此需要比较准的元素预测值,这一步是至关重要的。然而注意,指标数据可能在某些时间戳上缺失,这使预测的准确性下降;或者在异常前的所有时间戳都无法找到,在这一情况下采取填0的措施,即数据彻底缺失的情况下,我们设定f(e)=0,即当某个叶子节点在n个时间点对应的原始指标数据缺失时,将所缺失的原始指标数据填充为0值。步骤s12:根据所述实际值和所述预测值,计算每个叶子节点对所述多维度指标发生异常的影响程度和贡献能力。具体地,可以根据叶子节点的实际值和预测值,计算得到该叶子节点对多维度指标发生异常的影响程度influencedegree,以衡量该叶子节点是根因的可能性;另外,还可以根据叶子节点的实际值和预测值,计算得到该叶子节点对多维度指标发生异常的贡献能力contributionability,以衡量该叶子节点对多维度指标发生异常的贡献大小。请结合图3,图3是图1中步骤s12一实施例的流程示意图。在一个实施场景中,上述步骤s12具体可以包括:步骤s121:对于每个叶子节点,根据该叶子节点的实际值与预测值之间的差值、其他叶子节点的实际值与预测值之间的差值的平均值,得到该叶子节点对所述多维度指标发生异常的影响程度。可以理解的是,叶子节点的异常可以理解为实际值相对于预测值的偏离,而多维度指标整体的异常由叶子节点的异常累积而来。实际运用中,异常的根因定位面临数据量极大的问题,随着维度的增加,维度取值之间的笛卡尔积生成繁多的待考虑元素;通常只有一部分元素与异常根因相关,其他大量元素的kpi取值位于正常范围内,算法需要快速舍弃与根因无关的元素,重点考察潜在的根因元素。现实运维场景下,各个元素的kpi值都在不断地变化中,发生异常时算法需要评估这些元素的变化是倾向于导致根因发生,还是倾向于抑制根因,或是与根因无关。具体地,如果我们把节点数据分成两个集合,其中一个集合s1只包含根因相关的元素,即异常元素集合,另一个集合s2则不包含异常元素,那我们就可以抛弃s2,专注分析s1,这样可以减小待研究的数据量,以快速实现定位根因。集合s1和s2的可行划分有很多种,我们需要知道哪些划分是合理的。从kpi值的视角分析,在合理划分的情况下,s1中的元素应该展现出预测值和实际值的偏差,而s2中的元素实际值和预测值应该相差不大,即可以根据叶子节点的实际值和预测值,计算得到该叶子节点对多维度指标发生异常的影响程度influencedegree,以衡量该叶子节点是根因的可能性。具体地,对于每个叶子节点,根据该叶子节点的实际值与预测值之间的差值、其他叶子节点的实际值与预测值之间的差值的平均值,可以得到该叶子节点对多维度指标发生异常的影响程度influencedegree。进一步地,叶子节点对所述多维度指标发生异常的影响程度influencedegree满足:其中,v(s1)为集合s1中叶子节点对应的指标数据的实际值,f(s1)为集合s1中叶子节点对应的指标数据的预测值,v(s2)为集合s2中叶子节点对应的指标数据的实际值,f(s2)为集合s2中叶子节点对应的指标数据的预测值。可以理解的是,对于每个叶子节点,都分别把它当成s1的元素,并计算它的影响程度,从而可以筛选出那些影响程度大于预设程度阈值叶子节点,并形成集合s1,这样可以去除那些影响程度过小的叶子节点。本申请中的预设程度阈值可以使用拐点法自动确定,以适应各种类型的多维度指标,以增强算法的健壮性。步骤s122:对于每个叶子节点,根据该叶子节点的实际值与其他叶子节点的预测值之间的和值、该叶子节点的预测值与其他叶子节点的预测值之间的和值,得到该叶子节点对所述多维度指标发生异常的贡献能力。当多维度指标kpi是衍生度量除法指标时,算法使用衍生度量计算前述影响程度,这带来一个除法指标类衍生度量特有的问题:对于叶子节点,对衍生度量计算的影响程度本身不能正确地衡量它对总体异常的“贡献”。举例说明:如下表所示,以多维度指标是卡顿比为例,第1列为各个叶子节点,各属性的顺序是(线路,码率,平台,p2p),第2、3列为卡顿人数的预测值fn和实际值vn,第4、5列为总观众数的预测值fd和实际值vd,第6、7列为卡顿比的预测值f和实际值v,第8列id为影响程度influencedegree的首字母缩写。为考虑e4的影响程度,s1={e4},s2={e1,e2,e3,e5,e6,e7},根据上述影响程度influencedegree的公式,可得id(e4)=0.86,同样,id(e7)=0.67等。可以发现,尽管e4的卡顿比产生较大的突变(其影响程度很大),但实际卡顿观众数仅从0变为1,该突变是由于e4元素中总观众数太少引起的,所以,叶子节点e4在总异常中所占的比例很小,不是有效的叶子属性组合。同样,尽管e7也有突变,但卡顿比的变化趋势(v(e7)为0.07,f(e7)为0.27)是朝着一个好的方向变化,而不是引起异常,因此e7不是叶属性的有效组合。efnvnfdvdfvidcae1=(2,500,adr,0)551001000.050.0500e2=(3,2000,pc,1)510501000.10.10≈0e3=(5,500,adr,1)1010100500.10.20.670.14e4=(1,500,ios,0)015500.20.86≈0e5=(1,500,ios,1)001001000000e6=(5,500,ios,0)03010010000.30.950.85e7=(4,0,adr,0)15455550.270.070.67-0.32total35605105100.070.12--上述问题的根源在于,除法指标为不可加和指标,一般为比值,如黑屏比、秒开率、卡顿比等,其指标在各维度下加和的是无意义的,除法指标的聚合方式与可加和指标的聚合方式不同,除法指标聚合时不是直接用叶子节点的除法指标进行数学计算得到,而是用叶子节点的基本指标计算(分子相加、分母相加再相除)。因此,要正确定位除法指标的异常,我们还需要考虑各个元素的基础度量,即需要根据叶子节点的基础度量的实际值和预测值,计算得到该叶子节点对多维度指标发生异常的贡献能力contributionability,以衡量该叶子节点对多维度指标发生异常的贡献大小。具体地,对于每个叶子节点来说,根据该叶子节点的实际值与其他叶子节点的预测值之间的和值、该叶子节点的预测值与其他叶子节点的预测值之间的和值,可以得到该叶子节点对多维度指标发生异常的贡献能力。进一步地,上述步骤s122具体可以包括:当所述多维度指标为衍生度量除法指标时,获取所述衍生度量除法指标对应的基础度量指标;对于每个叶子节点,根据该叶子节点对应的基础度量指标的实际值与其他叶子节点对应的基础度量指标的预测值之间的和值、该叶子节点对应的基础度量指标的预测值与其他叶子节点对应的基础度量指标的预测值之间的和值,得到该叶子节点对所述多维度指标发生异常的贡献能力。进一步地,所述衍生度量除法指标为卡顿率,所述衍生度量除法指标对应的基础度量指标为卡顿人数和总观众数;叶子节点对所述多维度指标发生异常的贡献能力contributionability满足:其中,vn(s1)为集合s1中叶子节点对应的卡顿人数的实际值,vd(s1)为集合s1中叶子节点对应的总观众数的实际值,fn(s2)为集合s2中叶子节点对应的卡顿人数的实际值,fd(s2)为集合s2中叶子节点对应的总观众数的实际值。在一实施例中,依然使用上表中的数据计算贡献能力,计算结果为表中第9列,ca即为贡献能力contributionability的首字母缩写;例如计算e4的贡献能力,当e4异常时,我们可以得到:实际总卡顿比=(5+5+10+1+0+0+15)/(100+50+100+5+100+100+55)≈0.071;预测总卡顿比=(5+5+10+0+0+0+15)/(100+50+100+5+100+100+55)≈0.069,则贡献能力ca(e4)=0.071/0.069-1=0.029≈0,类似地,ca(e7)=-0.32,等等。可以看出元素e6的贡献能力最大。根据贡献能力筛选叶子节点,去除那些贡献能力小于等于0的节点,只考虑贡献能力大于0的节点,这些节点和异常根因相关性较强,这进一步节约了算法的运行时间。步骤s13:选取所述影响程度和所述贡献能力满足预设条件的叶子节点作为候选节点,并将所有候选节点的集合转化为事务表。在计算得到每个叶子节点的影响程度和贡献能力后,可以根据影响程度和贡献能力是否满足预设条件,来筛选出符合要求的叶子节点,以作为可能为根因的候选节点。经过对影响程度和贡献能力的筛选,对根因的考虑范围只剩下对异常定位有价值的叶子节点,即候选节点。接下来需要通过关联规则挖掘算法分析这些作为候选节点的叶子节点,以获取可能的根因节点;而关联规则挖掘的对象是事务表,因此需要预先把所有候选节点的集合转化为事务表。进一步地,所述预设条件为:所述影响程度大于预设程度阈值,及所述贡献能力大于0。上述步骤s13具体可以包括:选取所述影响程度大于预设程度阈值且所述贡献能力大于0的叶子节点作为候选节点;对于每个候选节点,将该候选节点的影响程度与贡献能力之间的乘积作为权重,并按照预设比例系数进行扩展,得到该候选节点在事务表中的出现次数;根据所有候选节点对应的出现次数形成所述事务表。可以理解的是,只有影响程度大于预设程度阈值以及贡献能力大于0的叶子节点才可能是根因节点,因此,可以选取影响程度大于预设程度阈值且贡献能力大于0的叶子节点来作为候选节点;而在把所有候选节点的集合转化为事务表时需要考虑叶子节点和根因的关系,因此,对于每个候选节点,可以考虑把影响程度和贡献能力的乘积作为权重,并按照比例系数a扩展,得到该候选节点在事务表中的出现次数,并根据所有候选节点对应的出现次数形成事务表。步骤s14:根据每个候选节点在所述事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,推荐所述多维度指标发生异常的第一根因节点。在所得到的可应用数据挖掘概念的事务表中,仅包含有可能与异常根因相关的叶子节点;项是指事务表中一次事务的一项,对应叶子节点在某一维度的具体取值(不能为通配符),项集是一次事务中任意项的集合,项集对应一个元素(叶子节点)。支持度衡量一个项或项集的相对出现频率,即反映一个元素在整个数据表的相对出现频率,而某取值与根因的关联越大,则在事务表中出现的频率越高,因此,根据候选节点在事务表中的支持度,可以选择出与根因关联大的叶子节点。另外,不能仅考虑叶子节点在事务表中的支持度,因为它在事务表中的支持度与它在原始数据中的分布强相关,为此,需要在原始指标数据中再次计算支持度,然后根据两次支持度的差值来推荐根因,支持度的差值越大,表明这个元素在本次异常中展现了越大的相关突变,即该叶子节点越有可能是根因节点;即根据每个候选节点在事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,可以推荐多维度指标发生异常的第一根因节点。在一个实施场景中,上述步骤s14具体可以包括:根据每个候选节点在所述事务表中的出现频率,得到每个候选节点在所述事务表中的支持度;选取在所述事务表中的支持度大于预设支持度阈值的所有候选节点,作为待推荐节点,并根据每个待推荐节点在所述原始指标数据中的出现频率,得到每个待推荐节点在所述原始指标数据中的支持度;计算每个待推荐节点在所述事务表中的支持度和在原始指标数据中的支持度之间的支持度差值;推荐所述支持度差值最大的待推荐节点作为所述多维度指标发生异常的第一根因节点。具体地,由于事务表中仅包含有可能与异常根因相关的叶子节点,某取值与根因的关联越大,则在事务表中出现的频率越高,因此可以设置一预设支持度阈值,选取在事务表中的支持度大于预设支持度阈值的所有候选节点,这些节点形成事务表的频繁项集,作为待推荐节点,即考虑从频繁项集中推荐根因节点。由于kpi在某些维度上可能分布非常不均匀,因此,有可能某节点在事务表中的支持度高的原因在于,其在原始指标数据所形成的数据表中的支持度过高,从而导致分析的所有叶子节点的指标数据中,大部分都是该节点的指标数据;即,叶子节点在事务表中的支持度与它在原始数据中的分布强相关,故需要根据每个待推荐节点在原始指标数据中的出现频率,得到每个待推荐节点在原始指标数据中的支持度,然后计算每个待推荐节点在事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,支持度的差值越大,表明这个元素在本次异常中展现了越大的相关突变,即该叶子节点越有可能是根因节点,因此推荐支持度差值最大的待推荐节点作为多维度指标发生异常的第一根因节点。上述方案,通过选取影响程度和贡献能力满足预设条件的叶子节点作为候选节点,快速舍弃了与根因无关的元素,考虑范围只剩下对异常定位有价值的叶子节点,从而可以实现根因快速定位;另外,通过将所有候选节点的集合转化为事务表,然后根据候选节点在事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,可以较为准确地推荐多维度指标发生异常的第一根因节点,从而实现对多维度指标进行异常根因定位。请参阅图4,图4是本申请异常根因定位方法第二实施例的流程示意图。具体而言,可以包括如下步骤:步骤s41:检测到多维度指标发生异常时,获取所有叶子节点在异常发生时间点所对应的指标数据的实际值以及在所述异常发生时间点之前所对应的指标数据的预测值。步骤s42:根据所述实际值和所述预测值,计算每个叶子节点对所述多维度指标发生异常的影响程度和贡献能力。步骤s43:选取所述影响程度和所述贡献能力满足预设条件的叶子节点作为候选节点,并将所有候选节点的集合转化为事务表。步骤s44:根据每个候选节点在所述事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,推荐所述多维度指标发生异常的第一根因节点。本实施例中,步骤s41-s44与本申请上述实施例的步骤s11-s14基本类似,此处不再赘述。可以理解的是,在实际场景中,异常的根因有可能是单根因(即根因集合中只有一个元素),也有可能是多根因(即根因集合中有多个元素)。我们无法事先得知此次异常究竟是何种类型的根因导致的,而多根因的异常也存在多种可能,比如多根因同幅度异常,多根因不同幅度异常(一个主要根因一个次要根因、一个主要根因多个次要根因),这些都是实际需要考虑的情形。上述实施例中仅能推荐单根因,而多根因在实践中也是常见的,因此,本实施例在步骤s44之后,还进一步包括以下步骤:步骤s45:去除所述第一根因节点的指标数据,判断所述多维度指标是否恢复正常。若在去除第一根因节点的指标数据之后,多维度指标恢复正常,则执行步骤s46,若在去除第一根因节点的指标数据之后,多维度指标没有恢复正常,则执行步骤s47。步骤s46:若所述多维度指标恢复正常,则确定所推荐的所述第一根因节点正确。步骤s47:若所述多维度指标未恢复正常,则将去除所述第一根因节点后剩余的所有其他叶子节点作为所述所有叶子节点,重复执行上述从所有叶子节点中推荐所述多维度指标发生异常的第一根因节点的过程,以推荐所述多维度指标发生异常的第二根因节点。可以理解的是,在得到第一根因节点后,通过去除第一根因节点的指标数据,此时原始指标数据中不包含该第一根因节点的数据,此时根据多维度指标是否恢复正常,可以判断出该第一根因节点是否正确,并且可以知道是否还有其他根因节点。具体地,若在去除第一根因节点的指标数据之后,多维度指标恢复正常,则说明该第一根因节点是正确的根因节点;若在去除第一根因节点的指标数据之后,多维度指标没有恢复正常,则说明除了该第一根因节点以外,还可能存在其他根因节点,此时将去除第一根因节点之外的所有叶子节点作为研究对象,然后重复执行上述步骤s41至s44,以从去除第一根因节点之外的所有叶子节点中,推荐多维度指标发生异常的第二根因节点,从而实现多根因的推荐。上述方案,在选取一个单根因后,通过去除它的影响并查看整体kpi是否恢复正常,若未恢复正常,则说明存在其他根因,这时再重复前述选取单根因的过程即可发现集合中的第二根因;通过循环以上过程,直至整体kpi恢复正常水平为止。这种使用迭代恢复的方式,可以寻找可能的多根因集合。本申请的异常根因定位方法可适用于在直播的过程中,通过运行数据自动定位异常的情况,该方法可以由直播的异常定位装置来执行,该直播的异常定位装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,服务器、工作站、个人电脑,等等。利用本申请的异常根因定位方法进行异常根因分析,依据线上真实运维数据发现,推荐5个根因节点的准确率达到98%、推荐4个根因节点的准确率达到95%、推荐3个根因节点的准确率达到87%、推荐2个根因节点的准确率达到82%、推荐1个根因节点的准确率达到47%;另外,极大的缩减了异常根因定位的模型运行时间,使三维度指标的根因定位用时在2s以内、四维度指标的根因定位用时在4s以内、五维度指标的根因定位用时在5s以内。请参阅图5,图5是本申请异常检测模型一实施例的框架示意图。异常根因定位模型50包括:数据获取模块500,用于在检测到多维度指标发生异常时,获取所有叶子节点在异常发生时间点所对应的指标数据的实际值以及在所述异常发生时间点之前所对应的指标数据的预测值;计算模块502,用于根据所述实际值和所述预测值,计算每个叶子节点对所述多维度指标发生异常的影响程度和贡献能力;事务表构建模块504,用于选取所述影响程度和所述贡献能力满足预设条件的叶子节点作为候选节点,并将所有候选节点的集合转化为事务表;根因推荐模块506,用于根据每个候选节点在所述事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,推荐所述多维度指标发生异常的第一根因节点。上述方案,通过选取影响程度和贡献能力满足预设条件的叶子节点作为候选节点,快速舍弃了与根因无关的元素,考虑范围只剩下对异常定位有价值的叶子节点,从而可以实现根因快速定位;另外,通过将所有候选节点的集合转化为事务表,然后根据候选节点在事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,可以较为准确地推荐多维度指标发生异常的第一根因节点,从而实现对多维度指标进行异常根因定位。在一些实施例中,数据获取模块500具体可以用于对所述多维度指标进行实时监测,获取所述多维度指标发生异常的时间点,作为所述异常发生时间点;获取所有叶子节点在所述异常发生时间点所对应的原始指标数据,得到所有叶子节点在所述异常发生时间点所对应的所述指标数据的实际值;获取所有叶子节点在所述异常发生时间点之前的n个时间点所对应的原始指标数据,对所述n个时间点所对应的原始指标数据进行预处理,得到所有叶子节点在所述异常发生时间点之前所对应的所述指标数据的预测值。在一些实施例中,数据获取模块500执行对所述n个时间点所对应的原始指标数据进行预处理的步骤,具体可以包括:采用移动平均法或指数平滑法对所述n个时间点所对应的原始指标数据进行处理;和/或,当某个叶子节点在所述n个时间点对应的原始指标数据缺失时,将所缺失的原始指标数据填充为0值。在一些实施例中,计算模块502具体可以用于对于每个叶子节点,根据该叶子节点的实际值与预测值之间的差值、其他叶子节点的实际值与预测值之间的差值的平均值,得到该叶子节点对所述多维度指标发生异常的影响程度;对于每个叶子节点,根据该叶子节点的实际值与其他叶子节点的预测值之间的和值、该叶子节点的预测值与其他叶子节点的预测值之间的和值,得到该叶子节点对所述多维度指标发生异常的贡献能力。在一些实施例中,所述预设条件为:所述影响程度大于预设程度阈值,及所述贡献能力大于0;事务表构建模块504具体可以用于选取所述影响程度大于预设程度阈值且所述贡献能力大于0的叶子节点作为候选节点;对于每个候选节点,将该候选节点的影响程度与贡献能力之间的乘积作为权重,并按照预设比例系数进行扩展,得到该候选节点在事务表中的出现次数;根据所有候选节点对应的出现次数形成所述事务表。在一些实施例中,根因推荐模块506具体可以用于根据每个候选节点在所述事务表中的出现频率,得到每个候选节点在所述事务表中的支持度;选取在所述事务表中的支持度大于预设支持度阈值的所有候选节点,作为待推荐节点,并根据每个待推荐节点在所述原始指标数据中的出现频率,得到每个待推荐节点在所述原始指标数据中的支持度;计算每个待推荐节点在所述事务表中的支持度和在原始指标数据中的支持度之间的支持度差值;推荐所述支持度差值最大的待推荐节点作为所述多维度指标发生异常的第一根因节点。在一些实施例中,根因推荐模块506还可以用于去除所述第一根因节点的指标数据,判断所述多维度指标是否恢复正常;若所述多维度指标恢复正常,则确定所推荐的所述第一根因节点正确;若所述多维度指标未恢复正常,则将去除所述第一根因节点后剩余的所有其他叶子节点作为所述所有叶子节点,重复执行上述从所有叶子节点中推荐所述多维度指标发生异常的第一根因节点的过程,以推荐所述多维度指标发生异常的第二根因节点。请参阅图6,图6是本申请电子设备一实施例的框架示意图。电子设备60包括相互耦接的存储器601和处理器602,处理器602用于执行存储器601中存储的程序指令,以实现上述任一异常根因定位方法实施例的步骤。在一个具体的实施场景中,电子设备60可以包括但不限于:微型计算机、服务器。具体而言,处理器602用于控制其自身以及存储器601以实现上述任一异常根因定位方法实施例的步骤。处理器602还可以称为cpu(centralprocessingunit,中央处理单元)。处理器602可能是一种集成电路芯片,具有信号的处理能力。处理器602还可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器602可以由集成电路芯片共同实现。上述方案,处理器602在检测到多维度指标发生异常时,获取所有叶子节点在异常发生时间点所对应的指标数据的实际值以及在异常发生时间点之前所对应的指标数据的预测值,然后根据实际值和预测值,计算每个叶子节点对多维度指标发生异常的影响程度和贡献能力;通过选取影响程度和贡献能力满足预设条件的叶子节点作为候选节点,并将所有候选节点的集合转化为事务表,然后根据每个候选节点在事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,可以推荐多维度指标发生异常的第一根因节点。通过选取影响程度和贡献能力满足预设条件的叶子节点作为候选节点,快速舍弃了与根因无关的元素,考虑范围只剩下对异常定位有价值的叶子节点,从而可以实现根因快速定位;另外,通过将所有候选节点的集合转化为事务表,然后根据候选节点在事务表中的支持度和在原始指标数据中的支持度之间的支持度差值,可以较为准确地推荐多维度指标发生异常的第一根因节点,从而实现对多维度指标进行异常根因定位。请参阅图7,图7是本申请计算机可读存储介质一实施例的框架示意图。计算机可读存储介质70存储有能够被处理器运行的程序指令700,程序指令700用于实现上述任一异常根因定位方法实施例的步骤。在本申请所提供的几个实施例中,应该理解到,所揭露的方法、模型、设备,可以通过其它的方式实现。例如,以上所描述的模型实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1