一种故障根因定位方法、装置、设备及存储介质与流程

文档序号:20509867发布日期:2020-04-24 18:23阅读:177来源:国知局
一种故障根因定位方法、装置、设备及存储介质与流程
本申请涉及互联网服务运维
技术领域
,具体涉及一种故障根因定位方法、装置、设备及存储介质。
背景技术
:在互联网服务运维领域中,比如游戏的运维服务中,多维度指标的故障根因定位一直是一个具有挑战的智能化运维(artificialintelligenceforitoperations,aiops)问题。当互联网服务运维系统中某个总关键性能指标(keyperformanceindicator,kpi)出现异常时,运维人员通常希望可以快速准确地定位故障根因,以便及时针对故障根因开展修复止损的工作;并且,运维人员通常希望定位出的故障根因结果尽可能地简洁,即以尽可能少的维度及其属性值的组合表现最为全面的故障根因,从而便于运维人员尽快核实并修复故障根因。相关技术中,目前主要基于自上而下的搜索剪枝异常检测方法定位故障根因,即在检测到根节点的kpi出现异常的情况下,从根节点开始,通过搜索剪枝寻找故障根因,此类搜索剪枝的方法通常预先定义一些相应的指标,在定位故障根因的过程中,确定符合指标的节点为异常节点,不符合指标的节点为正常节点,以此类推,直至查找到互联网服务运维系统中所有的故障根因为止。而该种自上而下的故障根因定位方法在具体实现的过程中,一旦在某个环节出现误判情况,将导致定位故障根因的计算量大幅增加,定位性能较差。技术实现要素:本申请实施例提供了一种故障根因定位方法、装置、设备及存储介质,能够快速准确地定位故障根因,并且能够减少定位过程中所需耗费的计算量。有鉴于此,本申请第一方面提供了一种故障根因定位方法,所述方法包括:针对多维度的服务运维系统中的每个叶节点,根据该叶节点的历史关键性能指标kpi和当前实际kpi确定该叶节点是否为异常叶节点;当确定所述服务运维系统中当前存在多个异常叶节点时,按照预设的合并规则对所述多个异常叶节点中包括的维度进行合并处理;确定经合并处理后所述异常叶节点中保留的维度下的属性值为故障根因。本申请第二方面提供了一种故障根因定位装置,所述装置包括:异常检测模块,用于针对多维度的服务运维系统中的每个叶节点,根据该叶节点的历史kpi和当前实际kpi确定该叶节点是否为异常叶节点;维度合并模块,用于当确定所述服务运维系统中当前存在多个异常叶节点时,按照预设的合并规则对所述多个异常叶节点中包括的维度进行合并处理;故障根因定位模块,用于确定经合并处理后保留的维度下的属性值为故障根因。本申请第三方面提供了一种电子设备,所述电子设备包括处理器以及存储器:所述存储器用于存储计算机程序;所述处理器用于根据所述计算机程序,执行如上述第一方面所述的故障根因定位方法的步骤。本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的故障根因定位方法的步骤。本申请第五方面提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面所述的故障根因定位方法的步骤。从以上技术方案可以看出,本申请实施例具有以下优点:本申请实施例提供了一种故障根因定位方法,该方法考虑到实际的服务运维系统中叶节点具有一定的稀疏性,因此另辟蹊径提出了一种自下向上的故障根因定位方法。具体的,基于本申请实施例提供的方法进行故障根因定位时,可以直接根据服务运维系统中各叶节点的历史kpi和当前实际kpi检测各叶节点是否存在异常,在检测出服务运维系统中当前存在多个异常叶节点的情况下,按照预设的合并规则对多个异常叶节点中包括的维度进行合并处理,最终确定合并处理后保留的维度下的属性值为故障根因。由于服务运维系统中实际存在的叶节点具有一定的稀疏性,因此直接针对服务运维系统中实际存在的叶节点进行异常检测,并不会耗费大量的计算量,并且即使在故障根因定位过程中出现叶节点误检测的情况,也不会对定位过程整体所需耗费的计算量产生大幅度的影响;此外,为了保证故障根因定位结果精确简洁,本申请实施例提供的方法确定存在多个异常叶节点后,会进一步按照预设规则对这多个异常叶节点中包括的多个维度进行合并处理,从而实现以尽可能少的维度及其属性值的组合表现最为全面的故障根因。附图说明图1为一种三维datacube的示意图;图2为三维datacube下包含的cuboid的示意图;图3a为一种示例性的服务运维系统中多维度指标的示意图;图3b为一种确定故障根因的案例示意图;图4为本申请实施例提供的故障根因定位方法的应用场景示意图;图5为本申请实施例提供的故障根因定位方法的流程示意图;图6为本申请实施例提供的故障根因定位方法的实现过程示意图;图7为本申请实施例提供的一种故障根因定位装置的结构示意图;图8为本申请实施例提供的另一种故障根因定位装置的结构示意图;图9为本申请实施例提供的又一种故障根因定位装置的结构示意图;图10为本申请实施例提供的终端设备的结构示意图;图11为本申请实施例提供的服务器的结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。为了便于理解本申请实施例提供的故障根因定位方法,下面先对本申请涉及的互联网服务运维领域中的技术名词进行解释。kpi,是指服务运维过程中关注的指标,如交易服务系统中的交易量、网站服务系统的网站的浏览量等等。维度,又可被成为属性,其是能够对服务运维系统中节点kpi产生影响的属性,以服务运维系统为网络服务运维系统为例,省份、网络服务商等均属于维度。属性值,是指维度下的具体数值,例如,省份=北京,网络服务商=联通,其中,北京为省份维度下的属性值,联通为网络服务商维度下的属性值。数据立方(datacube),是一种用于数据分析与索引的技术架构,其是服务运维系统中多维kpi的数据结构,其也可以被看作一个多维数组。图1为一种典型的三维datacube的示意图,其中包括a、b和c三个维度。方体(cuboid),是datacube的子结构,即多维数组的子数组,一个datacube对应的低维度的datacube被称为cuboid。图2为三维datacube下包含的cuboid的示意图,如图2所示,三维datacube下包括三个一维的cuboid,分别为ba、bb和bc,包括三个二维的cuboid,分别为ba,b、ba,c和bb,c;包括一个三维的cuboid,即ba,b,c。节点,cuboid中的元素均可被称为节点,以服务运维系统为网络服务运维系统为例,(省份=北京,网络服务商=联通)即可被视为一个节点。叶节点,datacube中最高维度的cuboid中的元素可被视为叶节点,以服务运维系统为包括省份、网络服务商和数据中心三个维度的网络服务运维系统为例,(省份=北京,网络服务商=联通,数据中心=第一数据中心)即可被视为一个叶节点。枝节点,cuboid中除了叶节点之外的其他节点均可以为视为枝节点,仍以服务运维系统为包括省份、网络服务商和数据中心三个维度的网络服务运维系统为例,(省份=北京,网络服务商=联通,数据中心=*)即为一个枝节点,*表示这一维度上的全部元素。以上即为本申请涉及的技术名词的相关介绍,接下来对多维度的服务运维系统进行介绍,并对相关技术存在的技术问题以及本申请提供的故障根因定位方法的核心技术思路进行介绍。参见图3a,图3a为一种示例性的服务运维系统中多维度指标的示意图,比如游戏的运维服务。如图3a所示,a、b和c分别代表服务运维系统中不同的维度,a1、a2为a维度下的属性值,b1、b2为b维度下的属性值,c1、c2为c维度下的属性值,a1b1、a1b2为a_b交叉维度下的属性值,a1c1、a1c2为a_c交叉维度下的属性值,b1c1、b1c2为b_c交叉维度下的属性值,a1b1c1、a1b1c2为a_b_c下的属性值。多维度的服务运维系统中各个维度下的kpi之间通常具有很复杂的关系,例如,kpi维度的属性值之间可能存在可加和的关系,以图3a所示维度指标为例,a维度的kpi总值等于a维度下所有属性值的kpi之和,属性值a1的kpi等于a1b1、a2b2、……等属性值下的kpi的加和。此外,不同维度间的属性值彼此可能互相影响,例如,当属性值(省份=北京)的kpi发生异常时,属性值(省份=北京,网络服务商=移动)和属性值(省份=北京,网络服务商=联通)也会发生异常,进而,属性值(网络服务商=移动)和属性值(网络服务商=联通)也会发生异常。参见图3b,图3b为一种确定故障根因的案例示意图。如图3b所示,交易量是一个具有三个维度(省份、机房、交易类型)的kpi,在上午10点检测到总交易量下降15%时,服务器可以根据各省份的交易量变化情况、各机房的交易量变化情况以及各交易类型的交易量变化情况,确定导致总交易量突降的故障根因为属性值组合{机房=机房a,交易类型=转账交易}。相关技术通常假设服务运维系统中包括所有属性值组合对应的节点。在检测到服务运维系统中根节点的kpi出现异常时,从根节点开始,采用搜索剪枝算法检测每个维度中各属性值的kpi是否出现异常,进而再检测异常属性值下各属性值组合的kpi是否出现异常,直至搜索到所有故障根因为止。在实际应用中,一旦在某个环节出现误判情况,将导致故障根因定位的计算量大幅增加,例如,如果在故障根因定位过程中误将服务运维系统中某一枝节点误判为异常节点,则需要进一步判断该异常节点下的所有枝节点和/或叶节点是否存在异常,如此,将大幅增加故障根因定位的计算量。针对上述技术问题,本申请实施例提供了一种故障根因定位方法,该方法考虑到实际的服务运维系统中叶节点具有一定的稀疏性,因此另辟蹊径提出了一种自下向上的故障根因定位方法。具体的,基于本申请实施例提供的方法进行故障根因定位时,可以直接根据服务运维系统中各叶节点的历史kpi和当前实际kpi检测各叶节点是否存在异常,在检测出服务运维系统中当前存在多个异常叶节点的情况下,按照预设的合并规则对多个异常叶节点中包括的维度进行合并处理,最终确定合并处理后保留的维度下的属性值为故障根因。由于服务运维系统中实际存在的叶节点具有一定的稀疏性,即在实际应用中,服务运维系统中通常不会包括所有属性值组合对应的节点,因此直接针对服务运维系统中实际存在的叶节点进行异常检测,并不会耗费大量的计算量,并且即使在故障根因定位过程中出现叶节点误检测的情况,也不会对定位过程整体所需耗费的计算量产生大幅度的影响。此外,为了保证故障根因定位结果精确简洁,本申请实施例提供的方法确定存在多个异常叶节点后,会进一步按照预设规则对这多个异常叶节点中包括的多个维度进行合并处理,从而实现以尽可能少的维度及其属性值的组合表现最为全面的故障根因。应理解,本申请实施例提供的故障根因定位方法通常应用于具备数据处理能力的设备,该设备具体可以为终端设备或者服务器;其中,终端设备具体可以为计算机、个人数字助理(personaldigitalassitant,pda)、平板电脑、智能手机等;服务器具体可以应用服务器,也可以为web服务器,在实际部署时,该服务器可以为独立服务器,也可以为集群服务器。为了便于理解本申请实施例提供的技术方案,下面对本申请实施例提供的故障根因定位方法所适用的应用场景进行介绍。参见图4,图4为本申请实施例提供的故障根因定位方法的应用场景示意图。如图4所示,该应用场景中包括:数据库410和服务器420。其中,数据库410用于存储服务运维系统中各叶节点的kpi日志数据;服务器420用于执行本申请实施例提供的故障根因定位方法,其可以从数据库410中调取各叶节点的kpi日志数据,并在服务运维系统中当前是否存在多个异常叶节点的情况下,准确地定位服务运维系统中的故障根因。具体的,服务器420可以周期性地从数据库410中调取各叶节点的kpi日志数据,针对每个叶节点调取的kpi日志数据通常包括该叶节点的历史kpi和当前实际kpi。进而,针对服务运维系统中的每个叶节点,根据该叶节点的历史kpi和当前实际kpi确定该叶节点是否为异常叶节点。当服务器420检测到该服务运维系统中当前存在多个异常叶节点时,服务器420按照预设的合并规则,对这多个异常叶节点中包括的维度进行合并处理;最终,确定经合并处理后异常叶节点中保留的维度下的属性值为故障根因。如此,从服务运维系统中稀疏的叶节点出发自下向上地定位故障根因,保证即使在故障根因定位过程中出现误检测的情况,也不会对定位过程整体所耗费的计算量产生大幅度影响。并且,按照预设的合并规则对异常叶节点中包括多个维度进行合并处理,能够保证以尽可能少的维度及其属性值组合表现最全面的故障根因。应理解,图4所示场景仅为示例,在实际应用中,本申请实施例提供的故障根因定位方法不仅适用于图4所示的场景,还可以适用于其他场景,在此不对本申请实施例提供的故障根因定位方法适用的应用场景做任何限定。下面通过实施例对本申请提供的故障根因定位方法进行介绍。需要说明的是,为了便于描述,在本申请实施例中使用字母代表维度,使用数字代表维度下的属性值。例如,可以利用字母p代表维度省份,利用数字16代表属性值四川,则p16表示(省份=四川)的一维节点;相类似地,可以利用字母l代表维度网络服务商,利用数字1代表属性值联通,则l1表示(网络服务商=联通)的一维节点。交叉维度下的节点(即高维度节点)可以利用&结合,例如,p16&l1表示(省份=四川,网络服务商=联通)的二维节点。参见图5,图5为本申请实施例提供的故障根因定位方法的流程示意图。为了便于描述,下述实施例以服务器作为执行主体进行描述。如图5所示,该故障根因定位方法包括以下步骤:步骤501:针对多维度的服务运维系统中的每个叶节点,根据该叶节点的历史关键性能指标kpi和当前实际kpi确定该叶节点是否为异常叶节点。针对多维度的服务运维系统进行故障检测时,服务器需要获取服务运维系统中每个叶节点的日志数据,叶节点的日志数据通常表现为数据流,其中包括多个按时间顺序排列的数据点,相邻的数据点之间的生成时间间隔通常为一个恒定值,如1秒、5分钟、12个小时等等。表1即为一种典型的日志数据的表现形式,如表1所示,其中包括多条数据记录,每条数据记录包括某叶节点在各维度下对应的属性值,以及该叶节点在不同时间段内的kpi。表1维度a维度b……维度xkpia1b1……x156a1b1……x1379…………………………在本申请实施例提供的技术方案中,服务器需要针对服务运维系统中的每个叶节点获取其对应的日志数据,所获取的日志数据中包括至少一个历史kpi和当前实际kpi,其中,当前实际kpi可以被理解为日志数据中生成时间最为靠后的kpi,历史kpi可以被理解为日志数据中生成时间在当前实际kpi生成时间之前的kpi。进而,服务器可以针对服务运维系统中的每个叶节点,根据该叶节点的历史kpi和当前实际kpi,衡量该叶节点是否为异常叶节点。本申请在此提供了两种示例性的用于检测叶节点是否为异常叶节点的实现方式:第一种实现方式,服务器可以利用该叶节点对应的时间序列回归模型,根据该叶节点在第一预设时段内的历史kpi确定该叶节点对应的预测kpi;叶节点对应的时间序列回归模型是根据周期性地该叶节点的历史kpi训练得到的。然后,计算该叶节点的预测kpi与当前实际kpi之间的差值;若该差值超出第一预设阈值范围,则确定该叶节点为异常叶节点。具体的,服务器可以针对服务运维系统中各个叶节点分别训练其各自对应的时间序列回归模型;针对一个叶节点训练其对应的时间序列回归模型时,服务器需要获取该叶节点的多个历史kpi,进而利用所获取的多个历史kpi对预先构建的时间序列回归模型进行训练,得到可以用于预测该叶节点kpi的时间序列回归模型。需要说明的是,为了保证时间序列回归模型可以一直较为准确地预测叶节点的kpi,服务器可以周期性地获取叶节点的历史kpi,并基于周期性获取的叶节点的历史kpi对时间序列模型进行周期性地更新训练。以所训练的时间序列回归模型为自回归滑动平均模型(auto-regressiveandmovingaveragemodel,arma)为例,该arma模型可以为包含了p个自回归项和q个移动平均项的arma(p,q)模型,其具体表示如式(1)所示:其中,xt-i表示叶节点的历史kpi,εt-j表示历史kpi的差分,c、和θ为所要训练的时间序列回归模型的模型参数。应理解,在实际应用中,时间序列回归模型除了可以为arma模型外,还可以为其他回归模型,例如基于facebookprophet方法训练得到的模型等,本申请在此不对时间序列回归模型的具体模型结构和训练算法做任何限定。此外,随着时间的推移,服务运维系统中叶节点的kpi的变化规律可能会发生变化,为了保证叶节点对应的时间序列回归模型可以准确地预测叶节点的kpi,服务器可以周期性地对时间序列回归模型进行训练,从而保证模型预测的准确性。服务器训练得到服务运维系统中各叶节点各自对应的时间序列回归模型后,即可利用各叶节点各自对应的时间序列回归模型检测各叶节点是否为异常叶节点。具体的,针对服务运维系统中的一个叶节点判断其是否异常时,可以将该叶节点在在第一预设时段内的历史kpi,输入该叶节点对应的时间序列回归模型,获取该时间序列回归模型的输出结果作为该叶节点对应的预测kpi;例如,可以将当前时间之前十分钟内的历史kpi输入该叶节点对应的时间序列回归模型,得到该叶节点对应的预测kpi。进而,计算该叶节点的当前实际kpi与该预测kpi之间的差值,若该差值超出第一预设阈值范围,则确定该叶节点为异常叶节点,反之,若该差值不超出第一预设阈值范围,则确定该叶节点并非异常叶节点。如此按照上述方式,针对服务运维系统中每个叶节点逐一确定其是否为异常叶节点。应理解,在实际应用中,上述第一预设时间段和第一预设阈值范围均可以根据实际需求设定,本申请在此不对该第一预设时间段和第一预设阈值范围做具体限定。第二种实现方式,针对服务运维系统中的每个叶节点,服务器可以根据该叶节点在第二预设时间段内的历史kpi确定衡量标准参数,进而根据该叶节点的当前实际kpi和该衡量标准参数,确定该叶节点是否为异常叶节点。具体的,针对服务运维系统中的每个叶节点,服务器可以根据叶节点在第二预设时间段内的历史kpi,确定该叶节点kpi的统计特征,并基于叶节点kpi的统计特征相应地确定衡量标准参数;进而,根据该叶节点的当前实际kpi与衡量标准参数之间的关系,判断该叶节点的当前实际kpi是否符合该叶节点kpi的统计特征,若符合,则确定该叶节点并非异常叶节点,反之,若不符合,则确定该叶节点为异常叶节点。在一种可能的实现方式中,如果服务运维系统中叶节点的kpi符合正态分布,则可以针对服务运维系统中的每个叶节点,根据该叶节点在第二预设时间段内的历史kpi计算kpi均值和kpi标准差,作为上述衡量标准参数;进而,计算叶节点的当前实际kpi与kpi均值之间的差值,若确定该差值超出第二预设阈值范围,则确定该叶节点为异常叶节点,反之,若确定该差值并未超出第二预设阈值范围,则确定该叶节点为正常叶节点;上述第二预设阈值范围是根据kpi标准差确定的。例如,针对服务运维系统中的一个叶节点,服务器可以根据该叶节点在第二预设时间段内的历史kpi,计算得到kpi平均值mu和kpi标准差sigma;预先设定2*sigma为第二预设阈值范围。计算该叶节点的当前实际kpi值x与mu之间的差值,若|x-mu|>2*sigma则确定该叶节点为异常叶节点。需要说明的是,在很多情况下,叶节点的kpi统计特征存在周期性,以变化周期为天为例,一天内不同时刻kpi的统计特征可能有所区别,例如,对于网页浏览业务来说,白天的网页浏览量通常多于夜晚的网页浏览量;基于此,本申请可以根据历史周期中所属于同一时段的kpi计算kpi均值和kpi标准差,作为上述衡量标准参数。应理解,在实际应用中,上述第二预设时间段和第二预设阈值范围均可以根据实际需求设定,本申请在此不对上述第二预设时间段和第二预设阈值范围做具体限定。此外,当叶节点的kpi符合其他分布时,可以相应地选取其他参数作为衡量标准参数,本申请在此也不对所选取的衡量标准参数的类型做具体限定。需要说明的是,上述两种实现方式仅为检测叶节点是否异常的两种示例性的实现方式,在实际应用中,服务器还可以采取其他方式检测服务运维系统中各叶节点是否存在异常,本申请在此不对检测异常叶节点的实现方式做具体限定。步骤502:当确定所述服务运维系统中当前存在多个异常叶节点时,按照预设的合并规则对所述多个异常叶节点中包括的维度进行合并处理。服务器经步骤501确定服务运维系统当前存在多个异常叶节点时,将进一步按照预设的合并规则对多个异常叶节点中包括的维度进行合并处理,以保证最终确定的故障根因定位结果精确简洁,即实现以尽可能少的维度及其属性值的组合表现最为全面的故障根因。经发明人研究发现,在实际应用中,一个稳定的服务运维系统同一时刻的故障根因通常只存在于同一个维度或交叉维度中,同一时刻的故障根因属于多个维度或多个交叉维度下的情况极少。以图3a所示的服务运维系统中的多维度指标为例,如果某时刻的kpi总值出现异常,那么故障根因集合可能为{a1,a2}或{a1b1,a2b2},而不会出现{a1,a2b2}这样的故障根因集合。对应于实际应用,故障根因集合可能为{省份=北京,省份=广东}或{省份=北京&服务商=联通,省份=广东&服务商=移动},而不可能出现{省份=北京,省份=广东&服务商=移动}这样的故障根因集合。基于上述发明人的发现结果,本申请实施例提供了下述合并规则,服务器可以基于该合并规则,通过下述实现方式多个异常叶节点中包括的多个维度进行合并处理:步骤a:将经步骤501确定出的异常叶节点作为异常节点,即将服务运维系统中当前存在的多个异常叶节点相应地作为多个异常节点。例如,假设服务运维系统中的当前存在的异常叶节点集合为{i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16},则服务器可以相应地确定异常节点集合s为{i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16}。步骤b:针对异常节点中包括的每个维度,根据去除该维度后的枝节点中包括的叶节点数目以及该异常节点中包括的叶节点数目,确定该维度对应的精度;根据去除该维度后的枝节点的数目以及异常节点的数目,确定该维度对应的压缩率;根据精度和压缩率确定该维度对应的合并分数。以异常节点集合s为{i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16}为例,针对异常节点中的维度c,可以先确定去除该维度c后的节点集合s_{-c}为{i14&p15,i38&p05,i31&p05,i38&p16}。进而,根据去除维度c后枝节点中包括的叶节点数目和异常节点集合中各异常节点下的叶节点数目,计算维度c对应的精度;根据去除维度c后的枝节点的数目以及异常集合中包括的异常节点的数目,确定维度c对应的压缩率。具体的,针对异常节点中包括的每个维度,服务器可以计算异常节点中包括的叶节点数目与去除该维度后的枝节点中包括的叶节点数目的比值,作为该维度对应的精度。以计算维度c对应的精度为例,具体可以通过式(2)计算维度c对应的精度percision(c):percision(c)=m/n(2)其中,m为异常节点集合中各异常节点下包括的叶节点数目总和,n为去除维度c后的各枝节点中包括的叶节点数目总和,percision(c)小于或等于1。更具体的,假设异常节点集合s为{i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16},去除维度c后的枝节点集合s_{-c}为{i14&p15,i38&p05,i31&p05,i38&p16};由于异常节点集合s中包括的异常节点本身即为叶节点,因此,异常节点集合中各异常节点下包括的叶节点数目总和m,实际上为异常节点集合s中包括的异常节点数目,即为7;去除维度c后各枝节点中包括的叶节点数目总和n,实际上等于枝节点i14&p15下的叶节点数目、枝节点i38&p05下的叶节点数目、枝节点i31&p05下的叶节点数目和枝节点i38&p16下的叶节点数目的和值。针对异常节点中包括的每个维度,服务器可以计算异常节点集合中异常节点的数目与去除该维度后的枝节点数目的比值,作为该维度对应的压缩率。以计算维度c对应的压缩率为例,具体可以通过式(3)计算维度c对应的压缩率compression(c):compression(c)=k/l(3)其中,k为异常节点集合中异常节点的数目,l为去除维度c后枝节点的数目,compression(c)大于或等于1。更具体的,假设异常节点集合s为{i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16},去除维度c后的枝节点集合s_{-c}为{i14&p15,i38&p05,i31&p05,i38&p16};异常节点集合中异常节点的数目l即为集合s中的节点数目,即为7;去除维度c后枝节点的数目即为集合s_{-c}中的节点数目,即为4。进而,服务器可以根据经式(2)和式(3)计算得到的精度和压缩率以及预设的指数参数,计算所去除的维度对应的合并分数。以计算维度c对应的合并分数为例,服务器具体可以通过式(4)计算维度c对应的合并分数mscore(c):mscore(c)=percision(c)*compression(c)^β(4)其中,percision(c)为维度c对应的精度,compression(c)为维度c对应的压缩率,β为预设的指数参数,该指数参数可以由人为设定,也可以通过automl(automatedmachinelearning)技术自动寻找。如此,按照上述方式逐一确定异常节点中包括的维度c、维度p和维度i各自对应的合并分数。步骤c:判断异常节点中各维度各自对应的合并分数是否均满足预设条件;若是,则保留异常节点中的各维度;若否,则从合并分数不满足预设条件的维度中去除一个维度,并执行步骤d。仍以异常节点集合s为{i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16}为例,服务器确定出维度c、维度p和维度i各自对应的合并分数后,进一步判断这三个维度各自对应的合并分数是否均满足预设条件,若这三个维度均满足预设条件,则直接保留异常节点中的各个维度,即保留维度c、维度p和维度i,无需针对异常节点中的各维度继续进行合并处理;反之,若这三个维度中存在至少一个维度对应的合并分数不满足预设条件,则从不满足预设条件的维度中选择一个维度去除,例如,假设维度c和维度p各自对应合并分数均不满足预设条件,则服务器可以从维度c和维度p中选择去除一个维度,并继续执行步骤d,即针对剩余的维度继续进行合并处理。更具体的,服务器可以设置预设条件为合并分数mscore小于1,则服务器可以判断异常节点中各维度各自对应的合并分数mscore是否均小于1,若是,则保留异常节点中各维度,停止合并;反之,若否,则从合并分数mscore大于或等于1的维度中,选择合并分数最大的维度去除。例如,假设维度c的合并分数mscore(c)=1.07、维度p的合并分数mscore(p)=1.01、维度i的合并分数mscore(i)=0.2,则服务器可以选择维度c去除,并针对剩余的维度p和维度i继续进行合并处理。步骤d:将针对所述异常节点去除一个维度后得到的枝节点作为新的异常节点,针对所述新的异常节点执行步骤b和步骤c,直至异常节点中各维度各自对应的合并分数均满足所述预设条件为止。假设经过步骤c,针对异常节点集合s={i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16}确定去除维度c,则可以将去除维度c后的枝节点集合s_{-c}={i14&p15,i38&p05,i31&p05,i38&p16}作为新的异常节点集合,进而,针对该新的异常节点集合执行步骤b和步骤c,直至异常节点集合中各维度所对应的合并分数均满足预设条件为止。如此,经上述步骤a、步骤b、步骤c和步骤d完成对于异常叶节点中多个维度的合并处理,保证最终确定的故障根因定位结果精确简洁,实现以尽可能少的维度及其属性值的组合表现最为全面的故障根因。步骤503:确定经合并处理后所述异常叶节点中保留的维度下的属性值为故障根因。最终,服务器将经步骤502合并处理后异常叶节点中保留的维度下属性值,确定为故障根因。以异常叶节点集合为{i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16}为例,经两次合并处理后,去除了维度c和维度p,最终确定保留下来的{i14,i31,i38}为故障根因。可选的,服务器定位出故障根因后,可以进一步将故障根因输出到报警系统,以通过报警系统提示运维人员服务运维系统中当前存在的故障根因;和/或,将故障根因输出到数据库中,以利用数据库对故障根因进行记录备份。上述故障根因定位方法考虑到实际的服务运维系统中叶节点具有一定的稀疏性,因此直接针对服务运维系统中实际存在的叶节点进行异常检测,并不会耗费大量的计算量,并且即使在故障根因定位过程中出现叶节点误检测的情况,也不会对定位过程整体所需耗费的计算量产生大幅度的影响;此外,为了保证故障根因定位结果精确简洁,本申请实施例提供的方法确定存在多个异常叶节点后,会进一步按照预设规则对这多个异常叶节点中包括的多个维度进行合并处理,从而实现以尽可能少的维度及其属性值的组合表现最为全面的故障根因。为了便于进一步理解本申请实施例提供的故障根因定位方法,下面对本申请实施例提供的故障根因定位方法做整体示例性介绍。参见图6,图6为本申请实施例提供的故障根因定位方法的实现过程示意图。如图6所示,服务器可以先利用时间序列训练模块602训练分别对应于服务运维系统中各叶节点的时间序列回归模型603,具体针对一个叶节点训练其对应的时间序列回归模型603时,时间序列训练模块602可以从数据库601中调取该叶节点的历史kpi,进而利用特定的训练算法,基于所调取的历史kpi训练该叶节点对应的时间序列模型603。时间序列训练模块602训练得到各叶节点各自对应的时间序列回归模型603后,异常检测模块604即可利用各叶节点各自对应的时间序列回归模型判断各叶节点是否为异常叶节点605。具体的,针对每个叶节点,异常检测模块604可以从数据库601中调取该叶节点在第一预设时间段内的历史kpi和当前实际kpi,并将所调取的该叶节点在第一预设时间段内的历史kpi输入该叶节点对应的时间序列回归模型603中,获得时间序列回归模型603输出的预测kpi;服务器计算叶节点的当前实际kpi与该预测kpi之间的差值,若该差值超出第一预设范围,则确定该叶节点为异常叶节点605。在服务运维系统当前存在多个异常叶节点605的情况下,智能定位模块606可以按照预设的合并规则,对这多个异常叶节点605中包括的多个维度进行合并处理,得到故障根因607。具体的,假设异常叶节点集合为{i14&c3&p15,i14&c5&p15,i38&c4&p05,i38&c1&p05,i31&c4&p05,i38&c1&p16,i38&c4&p16},智能定位模块606可以通过预设的合并规则先去除维度c,得到异常节点集合s_{-c}为{i14&p15,i38&p05,i31&p05,i38&p16},智能定位模块606还可以进一步通过预设的合并规则去除维度p,得到故障根因集合s_{-c-p}为{i14,i31,i38}。最终,服务器可以将故障根因607输出至报警系统608和/或数据库609,以实现故障根因的报警和/或故障根因的备份记录。针对上文介绍的故障根因定位方法,本申请实施例还提供了对应的故障根因定位装置,以便上述故障根因定位方法在实际中得以实现。参见图7,图7为上文图5所示的故障根因定位方法对应的一种故障根因定位装置700的结构示意图,该故障根因定位装置700包括:异常检测模块701,用于针对多维度的服务运维系统中的每个叶节点,根据该叶节点的历史kpi和当前实际kpi确定该叶节点是否为异常叶节点;维度合并模块702,用于当确定所述服务运维系统中当前存在多个异常叶节点时,按照预设的合并规则对所述多个异常叶节点中包括的维度进行合并处理;故障根因定位模块703,用于确定经合并处理后保留的维度下的属性值为故障根因。可选的,在图7所示的故障根因定位装置的基础上,参见图8,图8为本申请实施例提供的另一种故障根因定位装置的结构示意图。如图8所示,所述维度合并模块702具体包括:确定子模块801,用于执行步骤a,所述步骤a包括:将所述异常叶节点作为异常节点;计算子模块802,用于执行步骤b,所述步骤b包括:针对所述异常节点中包括的每个维度,根据去除该维度后的枝节点中包括的叶节点数目以及所述异常节点中包括的叶节点数目,确定该维度对应的精度;根据去除该维度后的枝节点的数目以及所述异常节点的数目,确定该维度对应的压缩率;根据所述精度和所述压缩率确定该维度对应的合并分数;判断子模块803,用于执行步骤c,所述步骤c包括:判断所述异常节点中各维度各自对应的合并分数是否均满足预设条件;若是,则保留所述异常节点中的各维度;若否,则从合并分数不满足所述预设条件的维度中去除一个维度,并执行步骤d;去除子模块804,用于执行步骤d,所述步骤d包括:将针对所述异常节点去除一个维度后得到的枝节点作为新的异常节点,针对所述新的异常节点执行步骤b和步骤c,直至异常节点中各维度各自对应的合并分数均满足所述预设条件为止。可选的,在图8所示的故障根因定位装置的基础上,所述计算子模块802具体用于:针对所述异常节点中包括的每个维度,计算所述异常节点中包括的叶节点数目与去除该维度后的枝节点中包括的叶节点数目的比值,作为该维度对应的精度,所述精度小于或等于1;计算所述异常节点的数目与去除该维度后的枝节点的数目的比值,作为该维度对应的压缩率,所述压缩率大于或等于1;根据所述精度、所述压缩率和预设的指数参数,计算该维度对应的合并分数。可选的,在图8所示的故障根因定位装置的基础上,所述判断子模块803具体用于:判断所述异常节点中各维度各自对应的合并分数是否均小于1;若是,则保留所述异常节点中的各维度;若否,则从合并分数大于或等于1的维度中,选择合并分数最大的维度去除。可选的,在图7所示的故障根因定位装置的基础上,所述异常检测模块701具体用于:利用该叶节点对应的时间序列回归模型,根据该叶节点在第一预设时段内的历史kpi确定该叶节点对应的预测kpi;叶节点对应的时间序列回归模型是周期性地根据该叶节点的历史kpi训练得到的;计算该叶节点的预测kpi与当前实际kpi之间的差值;若所述差值超出第一预设阈值范围,则确定该叶节点为所述异常叶节点。可选的,在图7所示的故障根因定位装置的基础上,参见图9,图9为本申请实施例提供的另一种故障根因定位装置的结构示意图。如图9所示,所述异常检测模块701具体包括:衡量参数计算子模块901,用于根据该叶节点在第二预设时间段内的历史kpi确定衡量标准参数;异常叶节点判断子模块902,用于根据该叶节点的当前实际kpi和所述衡量标准参数,确定该叶节点是否为所述异常叶节点。可选的,在图9所示的故障根因定位装置的基础上,所述衡量参数计算子模块901具体用于:根据该叶节点在所述第二预设时间段内的历史kpi计算kpi均值和kpi标准差,作为所述衡量标准参数;所述异常叶节点判断子模块902具体用于:计算所述当前实际kpi与所述kpi均值之间的差值;若所述差值超出第二预设阈值范围,则确定该叶节点为所述异常叶节点;所述第二预设阈值范围是根据所述kpi标准差确定的。上述故障根因定位装置考虑到实际的服务运维系统中叶节点具有一定的稀疏性,因此直接针对服务运维系统中实际存在的叶节点进行异常检测,并不会耗费大量的计算量,并且即使在故障根因定位过程中出现叶节点误检测的情况,也不会对定位过程整体所需耗费的计算量产生大幅度的影响;此外,为了保证故障根因定位结果精确简洁,本申请实施例提供的装置确定存在多个异常叶节点后,会进一步按照预设规则对这多个异常叶节点中包括的多个维度进行合并处理,从而实现以尽可能少的维度及其属性值的组合表现最为全面的故障根因。本申请实施例还提供了一种用于定位故障根因的设备,该用于定位故障根因的设备具体可以是终端设备或服务器,下面将从硬件实体化的角度对本申请实施例提供的上述设备进行介绍。参见图10,图10为本申请实施例提供的终端设备的结构示意图。为了便于说明,图10仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(英文全称:personaldigitalassistant,英文缩写:pda)、销售终端(英文全称:pointofsales,英文缩写:pos)、车载电脑等任意终端设备,以终端为计算机为例:图10示出的是与本申请实施例提供的终端相关的计算机的部分结构的框图。参考图10,计算机包括:射频(英文全称:radiofrequency,英文缩写:rf)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(英文全称:wirelessfidelity,英文缩写:wifi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的计算机结构并不构成对计算机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行计算机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。处理器1080是计算机的控制中心,利用各种接口和线路连接整个计算机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行计算机的各种功能和处理数据,从而对计算机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。在本申请实施例中,该终端所包括的处理器1080还具有以下功能:针对多维度的服务运维系统中的每个叶节点,根据该叶节点的历史关键性能指标kpi和当前实际kpi确定该叶节点是否为异常叶节点;当确定所述服务运维系统中当前存在多个异常叶节点时,按照预设的合并规则对所述多个异常叶节点中包括的维度进行合并处理;确定经合并处理后所述异常叶节点中保留的维度下的属性值为故障根因。可选的,所述处理器1080还用于执行本申请实施例提供的故障根因定位方法的任意一种实现方式的步骤。本申请实施例还提供了另一种设备,该设备可以是服务器,图11是本申请实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。上述实施例中由服务器所执行的步骤可以基于该图11所示的服务器结构。其中,cpu1122用于执行如下步骤:针对多维度的服务运维系统中的每个叶节点,根据该叶节点的历史关键性能指标kpi和当前实际kpi确定该叶节点是否为异常叶节点;当确定所述服务运维系统中当前存在多个异常叶节点时,按照预设的合并规则对所述多个异常叶节点中包括的维度进行合并处理;确定经合并处理后所述异常叶节点中保留的维度下的属性值为故障根因。可选的,cpu1122还可以用于执行本申请实施例中故障根因定位方法的任意一种实现方式的步骤。本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种故障根因定位方法中的任意一种实施方式。本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种故障根因定位方法中的任意一种实施方式。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储计算机程序的介质。应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1