掌桥专利:专业的专利平台
掌桥专利
首页

一种根因定位方法、装置、设备和可读介质

文献发布时间:2023-06-19 19:28:50


一种根因定位方法、装置、设备和可读介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种根因定位方法、装置、设备和计算机可读介质。

背景技术

随着信息技术的发展,现在广泛采用庞大的数据分析、处理系统,例如,分布式数据系统。对于这些庞大数据分析处理系统而言,系统故障事件如果不能在短时间内得到解决,会造成大量业务无法正常进行,严重影响用户的使用,同时也造成巨大的经济损失。因此,需要在故障影响服务之前进行快速准确的故障诊断和恢复。故障诊断和恢复的中心任务是根本原因分析(RootCauseAnalysis,RCA),即,定位发生异常时哪些指标的取值导致了该异常,用于分析系统或业务失败的根源。

针对每一项业务或系统异常,准确地进行根因定位是系统产品质量的重要保障。

发明内容

本说明书实施例提供一种根因定位方法、装置、设备和计算机可读介质,用于提高现有的根因定位方法的准确性。

为解决上述技术问题,本说明书实施例是这样实现的:

本说明书实施例提供的一种根因定位方法,包括:

获取异常时段内,目标指标对应的第一时序数据以及与所述目标指标相关联的第一候选指标集中各候选指标对应的第二时序数据;所述目标指标用于反映发生系统异常或业务异常;所述候选指标用于反映发生异常的原因;

基于所述第一时序数据和所述第二时序数据,训练线性回归模型,得到模型回归系数;

根据所述模型回归系数,从所述第一候选指标集中,将符合第一预设条件的模型回归系数对应的候选指标确定为属于第二候选指标集;

计算所述第二候选指标集中的各候选指标的归因分数;所述归因分数用于反映,在异常时段内,候选指标的变动所贡献的所述目标指标的变动在所述目标指标的总变动中的占比;

根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集。

本说明书实施例提供的一种根因定位装置,包括:

数据获取模块,用于获取异常时段内,目标指标对应的第一时序数据以及与所述目标指标相关联的第一候选指标集中各候选指标对应的第二时序数据;所述目标指标用于反映发生系统异常或业务异常;所述候选指标用于反映发生异常的原因;

模型系数确定模块,用于基于所述第一时序数据和所述第二时序数据,训练线性回归模型,得到模型回归系数;

第一确定模块,用于根据所述模型回归系数,从所述第一候选指标集中,将符合第一预设条件的模型回归系数对应的候选指标确定为属于第二候选指标集;

归因分数计算模块,用于计算所述第二候选指标集中的各候选指标的归因分数;所述归因分数用于反映,在异常时段内,候选指标的变动所贡献的所述目标指标的变动在所述目标指标的总变动中的占比;

第二确定模块,用于根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集。

本说明书实施例提供的一种根因定位设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

获取异常时段内,目标指标对应的第一时序数据以及与所述目标指标相关联的第一候选指标集中各候选指标对应的第二时序数据;所述目标指标用于反映发生系统异常或业务异常;所述候选指标用于反映发生异常的原因;

基于所述第一时序数据和所述第二时序数据,训练线性回归模型,得到模型回归系数;

根据所述模型回归系数,从所述第一候选指标集中,将符合第一预设条件的模型回归系数对应的候选指标确定为属于第二候选指标集;

计算所述第二候选指标集中的各候选指标的归因分数;所述归因分数用于反映,在异常时段内,候选指标的变动所贡献的所述目标指标的变动在所述目标指标的总变动中的占比;

根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集。

本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现一种根因定位方法。

本说明书一个实施例至少能够达到以下有益效果:通过线性回归模型初步筛选出可能导致目标指标异常的候选根因指标,再进一步基于候选根因指标的变动对目标指标的变动的影响来计算各候选根因指标的归因分数,从而依据归因分数确定出根因指标,基于该方案,能够更准确地确定出根因指标,并且可解释性高。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例提供的一种根因定位方法的流程示意图;

图2为本说明书实施例提供的根因定位方法的一种实际应用场景的示意图;

图3为本说明书实施例提供的对应于图1的一种根因定位装置的结构示意图;

图4为本说明书实施例提供的对应于图1的一种根因定位设备的结构示意图。

具体实施方式

为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。

应当理解,尽管在本申请文件中可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

系统故障和事件可能会对现代信息技术(IT)和金融公司广泛采用的分布式数据系统产生巨大影响,因为它们可能会导致系统崩溃,并进一步造成巨大的财务损失,且危及客户信任。在分布式系统中庞大的业务和用户需求背景下,针对每一项业务告警迅速做出相响应,完成对底层候选指标的根因检测与故障排查是对平台质量的必要和重要保障。因此,根因定位在当下分布式系统的运维中具有十分重要的作用,根因定位是连接异常检测和故障恢复的桥梁。

现有技术中,通常把根因定位建模成多维根因定位问题或者基于图的根因定位问题。

多维根因定位的方案,通过识别关键性能指标(key performance indicator,KPI)对应的多维属性的异常指示的组合,来解释关键性能指标的异常。多维根因定位依赖于两个假设:1)每个维度中的KPI的值等于其属性的值的总和;2)可以监视所有的KPI及其属性。然而,当实际应用时,这两种假设过于苛刻,影响这类方法的应用场景和结果准确性。

基于图的根因定位方案,首先基于追踪服务调用或因果发现算法构建因果图,然后通过基于规则的遍历或随机游走找到根本原因节点。追踪图和基于规则的遍历的应用的一个主要障碍是具有系统侵入性,并且通常需要在枚举所有追踪和规则方面进行大量工作。采用因果发现方法来学习图结构,计算复杂度和样本复杂度都很高,尤其对于大型图,计算速度会非常慢,并且当图中所有度量的观察数都很小时,可能会导致不准确的结果。在获得图之后,若采用随机游走方法,当随机游走的数量不够大时,可能无法收敛得到根本原因。

为了解决现有技术中的缺陷,在本说明书的实施例中,提出一种创新的根因定位方法框架,它的思想来源于可解释的人工智能领域(或称为可解释AI,explainable AI,简写XAI),将智能运维(Artficial Intelligence for Operations,AIOps)领域中的根因定位问题建模成一个归因分析问题,通过归因分析,该框架能将异常的目标关键指标归因于少数候选指标。

首先,对于异常的目标关键指标,使用目标关键指标对应的时序数据以及目标关键指标相关联的候选根因指标对应的时序数据来训练线性回归模型,得到模型回归系数,以便根据模型回归系数从与目标关键指标相关联的各候选根因指标中筛选出可能的根因指标;然后,采用归因分析的方法计算各个可能的根因指标的归因分数,以便根据归因分数从可能的根因指标中确定出根因指标。根据本说明书实施例的根因定位方法,效率和准确性高,且可解释性强。

接下来,将针对说明书实施例提供的一种根因定位方法结合附图进行具体说明:

图1为本说明书实施例提供的一种根因定位方法的流程示意图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。

如图1所示,该流程可以包括以下步骤:

步骤102:获取异常时段内,目标指标对应的第一时序数据以及与所述目标指标相关联的第一候选指标集中各候选指标对应的第二时序数据。

在系统运行或业务执行过程中,可能出现异常或故障。所述目标指标,可以用于反映发生系统异常或业务异常。候选指标,又称候选根因指标,可以用于反映发生异常的原因。在实际应用时,目标指标与候选指标之间的映射关系是已知的。通常,一个目标指标可以与不只一个候选指标相关联。本说明书实施例的方案可以用于,从所述不只一个候选指标中确定出导致目标指标异常的根因指标。

在数据库服务故障定位场景下,目标指标可以是租户关键指标,用于反映租户的性能,例如,SQL_SELECT_RT(租户SQL查询时间)、LOGIC_READS(租户查询逻辑读数量)、SQL_QUEUE_TIME(租户SQL排队时间)、RPC_PACKAGE_IN/OUT(租户通信输入数量/输出数量)等,不限于此。相应地,候选指标可以是SQL度量,用于反映各个SQL的性能,例如,cpu_time(单SQL的cpu时间)、lr(logical_reads)(单SQL的逻辑读数量)、queue_time(单SQL的排队时间)、rpc_count(单SQL的通信数量)等,不限于此。

在实际应用时,以租户关键指标SQL_SELECT_RT(租户SQL查询时间)为例,可以认为,该目标指标可以与所有的SQL的度量cpu_time(单SQL的cpu时间)相关联。以租户关键指标LOGIC_READS(租户查询逻辑读数量)为例,可以认为,该目标指标可以与所有的SQL的度量lr(logical_reads,单SQL的逻辑读数量)相关联。

在容器故障定位场景下,目标指标可以是发生在容器中的失败调用数量;相应地,候选指标可以是容器度量,例如,CPU使用率、内存使用率、进出流量、TCP连接数等容器度量,不限于此。

在实际应用时,可以认为,发生在容器中的失败调用数量这一目标指标,与CPU使用率、内存使用率、进出流量、TCP连接数等容器度量相关联。

在本说明书的实施例中,可以通过在线监测平台,实时监测目标指标是否出现故障或异常。对于每次系统故障或业务异常,可以确定出包含故障或异常时刻在内的异常时段,并获取异常时段内,目标指标对应的数据以及与所述目标指标相关联的候选指标对应的数据。

在实际应用时,目标指标对应的数据与候选指标对应的数据的采集步长可能是不同的。例如,在对存在问题的SQL程序进行定位的场景下,在线监控平台可以获取到异常时段内按分钟聚合的租户关键指标数据,另外,可以获得异常时段内不定时聚合的SQL度量数据。为了便于后续模型训练,可以预先将租户关键指标数据与SQL度量数据均按照预设的时间粒度分别聚合,例如,均按照1分钟为粒度进行聚合。

因此,步骤102具体可以包括:先获取异常时段内,目标指标对应的目标指标数据以及与所述目标指标相关联的第一候选指标集中各候选指标对应的候选指标数据;然后,将所述目标指标数据与所述候选指标数据按照相同的预设时间粒度分别聚合,得到所述目标指标数据对应的第一时序数据以及所述候选指标数据对应的第二时序数据。

此外,在实际应用时,目标指标对应的数据与候选指标对应的数据均有可能存在大量的数据丢失,因此,在获得数据并按照相同的预设时间粒度分别聚合后,还可以使用邻近均值填补缺失值,以得到所述目标指标数据对应的第一时序数据以及所述候选指标数据对应的第二时序数据,从而保证后续计算。

步骤104:基于所述第一时序数据和所述第二时序数据,训练线性回归模型,得到模型回归系数。

在本说明书的实施例中,训练线性回归模型的过程,具体可以是通过候选指标拟合得到目标指标的过程。更具体地,训练线性回归模型的过程,可以包括:以目标指标作为预测值,根据t-1时刻的候选指标值、t-1时刻的目标指标值以及t时刻的候选指标值,预测t时刻的目标指标值,所述t时刻为异常时段中的任意时刻。

线性回归模型的可以如下式(1)。

y=Xβ+∈ 式(

其中,y表示目标指标,为n维向量。具体地,y表示单个目标指标的在异常点附近的时间序列,时间序列的长度为n。

X表示候选指标,为n×p的矩阵。具体地,X表示所述单个目标指标对应的p个候选指标的时间序列,时间序列的长度为n。

β表示线性回归模型的系数,为p维向量。

∈表示白噪音。

等效地,前述式(1)的线性回归模型的贝叶斯概率形式的公式可以如下式(2)。

p(y|X,β,∈)=N(Xβ:∈) 式(2)

在本说明书的实施例中,所使用的线性回归模型具体为贝叶斯线性回归模型。训练贝叶斯线性回归模型的目的,是对模型回归系数β进行估计,模型回归系数β中的βj,代表第j个候选指标对应的系数(j取值为0至p),能够反映目标指标对于第j个候选指标的灵敏度。在实际应用时,可以基于训练得到的贝叶斯线性回归模型的模型回归系数来实现特征选择,在下文中将贝叶斯线性回归模型称为贝叶斯特征选择模型。

下面对本说明书实施例中使用的贝叶斯特征选择模型进行具体说明。

在本说明书的实施例中,一方面,为了确保不会有过多的无关系数对输出产生影响,需要确保模型的系数的稀疏性。另一方面,由于不同的候选指标之间可能具有相似性,为了避免对于相似的候选指标被忽略而导致根因漏报,因此需要确保模型能够处理特征之间的多重共线性。

鉴于此,一方面,为了提升模型的稀疏性,在可选的实施例中,可以使模型回归系数β的先验概率分布符合马蹄形先验分布。马蹄形先验分布是指由Carvalho等人在2009年提出,用于处理稀疏性的问题。

另一方面,为了解决多重共线性问题,在可选的实施例中,可以使模型回归系数β的先验概率分布为多元正态分布,且该多元正态分布的方差可以与候选指标特征数据(即,第二时序数据)的协方差正相关,具体地,可以使模型回归系数β的先验概率分布符合G先验分布。在统计学中,G先验分布用于表示多元回归系数的客观先验概率分布,最初由ArnoldZellner提出,是贝叶斯和经验贝叶斯变量选择的关键工具。

在实际应用时,可以使模型回归系数β的先验概率分布同时符合G先验分布和马蹄形先验分布。具体地,所述模型回归系数的先验概率分布可以符合下式(3)。

其中,g表示常数。σ为p维的向量,其中,p表示单个目标指标对应的候选指标的数量。σj是正实数上的标准半柯西分布,其中,j取值为0至p。X为n×p的矩阵,表示单个目标指标对应的p个候选指标的时间序列,其中,n表示时间序列的长度。

在式(3)表示的融合了马蹄形先验分布的先验概率分布中,g作为全局收缩参数,σj作为局部收缩参数。一方面,随着全局收缩参数g变小,模型回归系数β中的所有系数βj均趋向于0;另一方面,局部收缩参数σj使得一部分βj避免被全局收缩参数g收缩。因此,得到的β将会是稀疏的。与其他用于提升模型稀疏性的先验分布(例如,学生T分布和拉普拉斯分布等)相比,本说明书实施例提供的前述融合了马蹄形先验分布的先验概率分布,对于0和非常大的βj的密度更大,换言之,能够更好地对模型回归系数β中的零元素和非零元素进行区分。在实际应用时,与其他用于提升模型稀疏性的先验分布(例如,学生T分布和拉普拉斯分布等)相比,本说明书实施例提供的前述融合了马蹄形先验分布的先验概率分布在处理未知的稀疏性和大量的非零元素时,更加鲁棒。

与其他先验分布(例如,拉普拉斯分布和具有对角协方差的高斯分布等)相比,本说明书实施例提供的前述融合了G先验分布的先验概率分布,引入特征X的协方差X

如上所述,在本说明书的实施例中,采用贝叶斯特征选择模型来进行特征选择,优于其他线性特征选择模型。例如,Lasso模型无法适应共线性的输入特征,当存在较大的共线性特征时,Lasso模型会从中随机选择其一并抛弃其他,这会造成可能的根因漏报。又如,ElasticNet模型在Lasso的基础上具备一定的共线性特征处理能力,但依赖超参数选择。再如,ARD模型,具备一定的特征选择能力,也支持一定的共线性特征选择,但是其先验分布是高斯分布,过于理想,并不能很好的适应各种类型的输入特征。

步骤106:根据所述模型回归系数,从所述第一候选指标集中,将符合第一预设条件的模型回归系数对应的候选指标确定为属于第二候选指标集。

在实际应用时,所获得的模型回归系数βj是一个分布,而不是一个点。因此,在本说明书的实施例中,当使用模型回归系数βj参与计算时,可以使用βj的估计值。所述估计值可以包括均值、中位数、分位数等。由于q(βj)遵循高斯分布,因此,优选地,可以使用模型回归系数βj的积分平均值<βj>作为模型回归系数βj的估计值,来参与诸如步骤106、步骤108、步骤110中的计算。

在本说明书的实施例中,步骤106具体地可以包括,从所述第一候选指标集中,将大于第一预设阈值的模型回归系数对应的候选指标确定为属于第二候选指标集。更具体地,可以从所述第一候选指标集中,将积分平均值<βj>大于第一预设阈值的模型回归系数βj对应的候选指标确定为属于第二候选指标集。为了便于描述,在下文中,可以用<βj>来代替模型回归系数βj。

在稀疏的线性模型中,可选地,所述第一预设阈值可以为0。在这种情况下,当βj为0时,则相应的第j候选指标可以被忽略;反之,相应的候选指标可以被选中属于第二候选指标集。

步骤108:计算所述第二候选指标集中的各候选指标的归因分数;所述归因分数用于反映,在异常时段内,候选指标的变动所贡献的所述目标指标的变动在所述目标指标的总变动中的占比。

对于线性回归模型,模型回归系数<βj>等于y关于xj的梯度,因此,模型回归系数〈βj〉描述了y对于xj的灵敏度。换言之,<βj>的值量化了xj的微小变化对y的影响。因此,在本说明书的实施例中,可以将候选指标的归因分数设置为,正相关于该候选指标对应的模型回归系数。

然而,灵敏度高并不意味着对于目标指标的异常的贡献大。例如,若模型回归系数<βj>是非零的且相对较大,但是候选指标xj非常小,那么,在实际应用时,鉴于xj的规模小,对于目标指标的异常的贡献不大,需要忽略xj。因此,在实际应用时,可以在计算归因分数rj时引入相应的候选指标xj的值。由此使得,只有在<βj>和xj均较大的情况下,xj才会被选择为根因指标。

在此基础上,在本说明书的实施例中,考虑到方案的目标是将目标指标中的异常归因于候选指标中的根因指标,因此,更应当关注的是在异常时段内由于xj的变化导致的y的变化,而不是仅仅是xj的值。换言之,更应当关注的是候选指标的边际效应,即,关注的是,若将候选指标中的异常部分替换为正常部分后,目标指标将如何变化。因此,在本说明书书的实施例中,可以将候选指标的归因分数进一步设置为,正相关于该候选指标在异常时段内的变动。其中,所述变动可以是指候选指标在异常时刻的值与该候选指标的背景值之间的差值。其中,所述背景值,可以是正常时间段中各值的平均值、中位数或分位数,或者,可以是从正常时间段中选择的任意值。

在可选的实施例中,可以根据下式(4)来计算归因分数的值。

rj=|<βj>△xj| 式(

在实际应用时,还可以对归因分数进行归一化,得到归因分数的计算式如下式(5)。

其中,rj表示候选指标j的归因分数,j取值为0至p,p表示单个目标指标对应的候选指标的数量。候选指标j对应的归因分数rj越大,则代表候选指标j作为根因的可能性越大。

|·|表示绝对值。

〈βj〉表示候选指标j对应的模型回归系数。

Δxj表示候选指标j在异常时刻的值与该候选指标j的背景值之间的差值。

Δy表示目标指标在异常时刻的值与该目标指标的背景值之间的差值。

其中,所述背景值可以是正常时间段对应的正常值。具体地,所述背景值可以是正常时间段中各值的平均值、中位数或分位数,或者,可以是从正常时间段中选择的任意值。

步骤110:根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集。

在本说明书的实施例中,步骤110具体可以包括,对所述第二候选指标集中的各候选指标,按照归因分数降序排序,得到候选指标序列;然后将所述候选指标序列中的前若干个候选指标确定为根因指标。

其中,所述第二预设条件可以包括,当按照归因分数降序排序得到候选指标序列时,属于所述候选指标序列中的前k个。其中,k表示预设的最终得到的根因指标的数量,例如,可以设置为1至5中的任意值。

在实际应用时,对于每个目标指标yk,可以计算对于每种候选根因xj的归因分数rjk;然后,对于每个目标指标yk,可以将归因分数rjk按照降序排列;然后,对于每个目标指标yk,可以保留归因分数最大的k个根因。

根据本说明书的实施例的方案,通过步骤108和步骤110中的归因分析,可以很好地衡量当前候选指标变动对目标指标变动的贡献度,进而确定哪些候选指标作为根因的概率大。由此获得的根因指标,准确性更高,也具有更高的可解释性。

图1中的方法,通过线性回归模型初步筛选出可能导致目标指标异常的候选根因指标,然后,进一步基于候选根因指标的变动对目标指标的变动的影响来计算各候选根因指标的归因分数,从而依据归因分数确定出根因指标,基于该方案,将通常应用于可解释AI领域的归因分析方法创新性地应用到智能运维领域的根因定位场景,使得能够更准确地确定出根因指标,并且可解释性高。

应当理解,本说明书一个或多个实施例所述的方法中,部分步骤的顺序可以根据实际需要调整,或者可以省略部分步骤。

在本说明书的实施例中,在实际应用时,如果β是比较稀疏的,例如,β中的非零元素的数量小于预设的k,则可以省略步骤108和步骤110。

因此可选地,在计算所述第二候选指标集中的各候选指标的归因分数之前,还可以包括:判断所述第二候选指标集中的候选指标的数量是否大于预设k值;若是,则计算所述第二候选指标集中的各候选指标的归因分数,并根据所述归因分数,从所述第二候选指标集中确定出根因指标;若否,则直接将所述第二候选指标集中的各候选指标确定为根因指标。

基于图1的方法,本说明书实施例还提供了该方法的一些具体实施方式,下面进行说明。

在实际应用时,当存在多于一个异常的目标指标时,针对每个异常的目标指标确定出根因指标后,还可以进一步对所获得的各目标指标对应的根因指标进行聚合,并将聚合结果传递给后续自愈决策模块,以便自愈决策模块更高效地处理异常。

可选地,根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集之后,还可以包括:对两个或更多个异常的目标指标对应的根因指标集取并集,得到第一聚合根因指标集;所述第一聚合根因指标集,用于表示导致所述两个或更多个异常的目标指标中的至少一个目标指标异常的根因指标。

可选地,所述根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集之后,还可以包括:对两个或更多个异常的目标指标对应的根因指标集取交集,得到第二聚合根因指标集;所述第二聚合根因指标集,用于表示导致所述两个或更多个异常的目标指标中的全部目标指标异常的根因指标。

根据上面的说明,本说明书实施例提供的根因定位方法的一种实际应用场景的示意图,如图2所示。

在图2中,步骤201:在系统运行或业务执行过程中,可以按照预设的时间间隔采集系统运行或业务执行数据,并聚合得到时序数据,存入到时序数据库中。

步骤202:可以通过在线检测平台,实时对目标指标对应的时序数据进行异常检测,若检测到目标指标存在异常,则触发执行本说明书实施例的根因定位方案;例如,在对存在问题的SQL程序进行根因定位的场景下,若目标指标SQL_SELECT_RT或LOGIC_READS等存在异常,则可以触发根因定位。

步骤203:加载异常的目标指标对应的时序数据以及与异常的目标指标相关联的候选指标对应的时序数据。

步骤204:基于步骤203中加载的时序数据,对线性回归模型进行拟合,得到线性回归模型的模型回归系数,并根据模型回归系数来对候选指标进行筛选。

步骤205:对于步骤204筛选出的候选指标,进一步进行归因分析得到各候选指标的归因分数,从而依据归因分数确定异常的目标指标对应的根因指标。

步骤206:当具有多于一个异常的目标指标时,将各个异常的目标指标对应的根因指标进行聚合,例如,取并集或交集,得到用于输出至自愈决策模块的根因定位结果。

步骤207:根据步骤206输出的根因定位结果,来进行自愈决策,进而根据决策采取自愈措施。

基于本说明书实施例的根因定位方法,当目标指标出现异常时,可以从其相应的候选指标集合中定位出根因指标,即,确定出哪个或哪几个候选指标作为目标指标异常的根因。

本说明书实施例提供的根因定位方法,具有如下特点:

1)由于选择贝叶斯特征选择模型进行特征选择,对于候选指标数量动态、未知且可能数量很大的情况,以及样本数量(即,时序数据的长度)的大小可能比候选根因的数量少的情况等,都能很好地适应;

2)由于在训练贝叶斯特征选择模型时,使用融合了G先验分布和马蹄形分布的先验概率分布,能够更好地定位到候选指标中的根因指标,例如,当根因指标存在共线性时,能够同时发现,当没有合适的根因时则忽略;

3)由于采用了归因分析来确定根因,更加准确,且结果具有更强的可解释性,便于后续自愈决策;

4)与ARD、LASSO、Elastic Net、fsMTS等根因定位方案相比,耗时更少且准确性更高。

基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图3为本说明书实施例提供的对应于图1的一种根因定位装置的结构示意图。如图3所示,该装置可以包括:

数据获取模块302,用于获取异常时段内,目标指标对应的第一时序数据以及与所述目标指标相关联的第一候选指标集中各候选指标对应的第二时序数据;所述目标指标用于反映发生系统异常或业务异常;所述候选指标用于反映发生异常的原因;

模型系数确定模块304,用于基于所述第一时序数据和所述第二时序数据,训练线性回归模型,得到模型回归系数;

第一确定模块306,用于根据所述模型回归系数,从所述第一候选指标集中,将符合第一预设条件的模型回归系数对应的候选指标确定为属于第二候选指标集;

归因分数计算模块308,用于计算所述第二候选指标集中的各候选指标的归因分数;所述归因分数用于反映,在异常时段内,候选指标的变动所贡献的所述目标指标的变动在所述目标指标的总变动中的占比;

第二确定模块310,用于根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集。

可以理解,上述的各模块是指计算机程序或者程序段,用于执行某一项或多项特定的功能。此外,上述各模块的区分并不代表实际的程序代码也必须是分开的。

基于同样的思路,本说明书实施例还提供了上述方法对应的设备。

图4为本说明书实施例提供的对应于图1的一种根因定位设备的结构示意图。如图4所示,设备400可以包括:

至少一个处理器410;以及,

与所述至少一个处理器通信连接的存储器430;其中,

所述存储器430存储有可被所述至少一个处理器410执行的指令420,所述指令被所述至少一个处理器410执行,以使所述至少一个处理器410能够:

获取异常时段内,目标指标对应的第一时序数据以及与所述目标指标相关联的第一候选指标集中各候选指标对应的第二时序数据;所述目标指标用于反映发生系统异常或业务异常;所述候选指标用于反映发生异常的原因;

基于所述第一时序数据和所述第二时序数据,训练线性回归模型,得到模型回归系数;

根据所述模型回归系数,从所述第一候选指标集中,将符合第一预设条件的模型回归系数对应的候选指标确定为属于第二候选指标集;

计算所述第二候选指标集中的各候选指标的归因分数;所述归因分数用于反映,在异常时段内,候选指标的变动所贡献的所述目标指标的变动在所述目标指标的总变动中的占比;

根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集。

基于同样的思路,本说明书实施例还提供了上述方法对应的计算机可读介质。计算机可读介质上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现以下方法:

获取异常时段内,目标指标对应的第一时序数据以及与所述目标指标相关联的第一候选指标集中各候选指标对应的第二时序数据;所述目标指标用于反映发生系统异常或业务异常;所述候选指标用于反映发生异常的原因;

基于所述第一时序数据和所述第二时序数据,训练线性回归模型,得到模型回归系数;

根据所述模型回归系数,从所述第一候选指标集中,将符合第一预设条件的模型回归系数对应的候选指标确定为属于第二候选指标集;

计算所述第二候选指标集中的各候选指标的归因分数;所述归因分数用于反映,在异常时段内,候选指标的变动所贡献的所述目标指标的变动在所述目标指标的总变动中的占比;

根据所述归因分数,从所述第二候选指标集,将符合第二预设条件的归因分数对应的候选指标确定为属于根因指标集。

上述对本说明书特定实施例进行了描述,在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可。

本说明书实施例提供的装置、设备与方法是对应的,因此,装置、设备也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、设备的有益技术效果。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field ProgrammableGateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字符系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(AlteraHardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字符多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 一种定位方法及装置、移动设备和计算机可读存储介质
  • 一种定位方法、装置、电子设备及计算机可读存储介质
  • 一种软件故障定位方法、装置、设备及可读存储介质
  • 一种UWB精定位方法、装置、设备和计算机可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种故障根因定位方法、装置、电子设备及可读存储介质
  • 故障根因定位方法、装置、设备及可读存储介质
技术分类

06120115923216