当前位置: 首页 > 专利查询>南京大学专利>正文

一种用于微服务应用程序的故障根因定位方法技术

技术编号:32189592 阅读:16 留言:0更新日期:2022-02-08 15:54
本发明专利技术提供了一种用于微服务应用程序的故障根因定位方法,包括:步骤1,通过调用接口的方式从监控系统中每隔一段时间进行各种指标数据信息的采集;步骤2,对获取到的sKPI时间序列数据的有效性进行检验,如果检验为无效数据,则剔除该时间点数据或者重新获取数据;如果检测为有效数据,则进入步骤3;步骤3,使用基于核函数的异常检测器EXPoSE在线检测ESB的sKPI异常,并获得故障的发生时间T_fault;步骤4,计算网元节点间调用耗时的推土机(wasserstein)距离,提取mKPI的突变特征;步骤5,利用随机森林关联模型预测根因节点和根因mKPI。mKPI。mKPI。

【技术实现步骤摘要】
一种用于微服务应用程序的故障根因定位方法


[0001]本专利技术涉及故障根因定位
,尤其涉及一种用于微服务应用程序的故障根因定位方法。

技术介绍

[0002]为了保证微服务系统的可靠性,监控系统会定期收集两类指标。服务级指标sKPI,如调用耗时;机器级性能指标mKPI,如CPU使用率、网络发送队列等指标。这些监控指标有助于工程师在系统发生故障时诊断性能并定位故障根本原因。真实场景下故障根本原因定位是困难的。由于微服务系统模块众多,系统的组件之间有复杂的相互作用,并且微服务系统有多种不同的故障原因,可以分为外部故障和内部故障。前者包括硬件故障、网络崩溃、资源占用过载等,后者主要是指软件故障。
[0003]参见图1,图中给出的是传统的用于微服务故障根因定位方法,包括以下步骤:1.通过3

sigma(数据在μ

3σ,μ+3σ之外,σ代表标准差,μ代表均值)检验单一的sKPI序列来确定故障时间T_fault;2.判断在T_fault附近是否为数据库(db)错误,若是则输出db故障网元和故障指标;3.判断调用类型(callType),如果是远程调用则输出序号1

10的操作系统(OS)类型故障网元和故障指标;4.判断是否为容器的CPU类型故障,若是则输出docker类型故障,否则输出序号11

16的OS类型网元和故障指标。现有的根因定位方法主要基于运维人员的经验和阈值法,还有一些基于历史数据的聚类深度学习的方法,耗时较长且无法自适应系统变化,还有一些方法只能进行粗粒度网元的根因定位,传统方法中网元节点下个机器指标mKPI相互影响会导致的对故障根因KPI的判断的假阳率(FPrate)过高。

技术实现思路

[0004]专利技术目的:本专利技术的目的是对微服务系统提供自动故障检测和根因定位的方案,并对该方案提供合理的解释性。该专利技术实时检测,提高了检测速度,并且检测粒度更细。
[0005]本专利技术所要解决的技术问题可以采用如下技术方案来实现:
[0006]一种用于微服务应用程序的故障根因定位方法(微服务架构已经被广大互联网公司采用,它由许多分散在多台机器上并通过网络进行通信的独立应用程序组成。一次用户操作会涉及部署在不同网络节点的多个微服务,产生复杂的调用关系),包括以下步骤:
[0007]步骤1,通过调用接口的方式从监控系统中每隔时间X(一般取值为1min)进行各种指标数据信息的采集,所述不同指标数据信息包括总体服务级指标sKPI,网元节点之间调用耗时数据M
i,j
(r),以及机器级性能指标数据mKPI;
[0008]步骤2,通过hive聚集统计系统总体服务级指标sKPI,如1min内服务平均时延,平均调用次数等时间序列数据,对当前t时刻数据进行实时有效性检验,如果检验为无效数据,则剔除当前t时刻数据或者重新获取数据,得到t时刻总体服务级指标sKPI的取值向量x
t
;如果检测为有效数据,则保存数据x
t
,进入步骤3;
[0009]步骤3,使用基于核函数的异常检测器EXPoSE在线检测系统总线所有服务级指标
sKPI异常,并获得故障的发生时间T
fault

[0010]步骤4,计算网元节点间调用耗时的推土机(wasserstein)距离,提取机器性能级别(mKPI)的突变特征;距离越高表示节点在故障前后的状态变化明显,因此越有可能是故障。这一步骤可以初步得出故障节点。突变特征包括了每条时间序列的突变点,突变梯度,突变时间,误报系数等特征。一般越早发生的突变越可能是根因序列。
[0011]步骤5,利用随机森林关联模型预测故障根因节点和根因mKPI。机器级性能指标数据mKPI是一个序列,根因mKPI就是指的在所有机器级性能指标数据mKPI里出现故障的那条序列。
[0012]步骤3包括:
[0013]通过以下公式计算异常分数s
t

[0014][0015]是对x
t
进行特征映射,所有映射都是基于高斯核函数(rbf sampler)。
[0016]μ[P
t
]是核均值映射,将正常数据的概率分布嵌入到再生核希尔伯特空间中,用经验分布来近似均值。
[0017]根据得到的异常分数,设定阈值θ,当t和t+1时刻的异常分数均大于阈值θ,则判断t时刻为故障发生时刻。当然这个具体的阈值可以根据业务情况来设置,本案例采取的是0.1,因为其他正常情况下异常分数基本小于0.01。
[0018]步骤4中,采用如下方法计算网元节点的推土机距离:
[0019]每次预测到故障发生时间T
fault
后,开始计算:
[0020]设置t=T
fault
,设置窗口w,对于网元节点i和j:
[0021]对所有x设置
[0022]其中,x表示故障时间t之前的时间窗内网元节点之间耗时数据M
i,j
(r),x是随机变量;r是故障时间t前时间窗的开始时间;表示网元节点耗时随机变量的分布;表示随机变量x的指示函数;
[0023][0024]表示故障后时间窗内节点耗时的分布情况;
[0025]计算网元节点i、j间的推土机距离s
i,j
(T
fault
):
[0026][0027]其中,Π(P,Q)表示所有可能的联合分布集合,联合分布满足边缘分布是P和Q;对于每个可能的联合分布r采样(x,y),计算距离并求得期望值inf表示在所有可能的联合分布中这个期望值的下限;i∈N,j∈N,N为网元节点全集,并且i与j能够相同。x表示从分布采样得到的网元节点耗时,y是从采样得到的网元节点耗时。
[0028]步骤4中,所述提取机器性能级别特征的突变特征,具体包括:设置突变时间窗[T
fault

w1,T
fault
+w2];
[0029]w1为后向时间窗长度,w2为前向时间窗长度,这个时间窗是mKPI最容易影响到sKPI变化的窗口部分;
[0030]设置x表示机器级性能指标数据mKPI的值,x
*
表示归一化的值,是突变时间窗内的均值std(x)是x的标准偏差;
[0031]每次t时刻,设置每次t时刻,设置表示t时刻的序列梯度值;表示下一时刻归一化的值;
[0032]然后执行如下步骤:
[0033]步骤4

1:设置T
s
=1,T
s
为突变发生时间;
[0034]步骤4

2:遍历t=w2‑
1:w1(表示时间t从w1到w2),如果设置T
s
=t,退出循环;
[0035]步骤4

3结束循环后得到最早超出三倍标准差梯度的时刻T<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于微服务应用程序的故障根因定位方法,其特征在于,包括如下步骤:步骤1,通过调用接口的方式从监控系统中每隔时间X进行各种指标数据信息的采集,所述各种指标数据信息包括总体服务级指标sKPI,网元节点之间调用耗时数据M
i,j
(r),以及各种机器级性能指标数据mKPI;步骤2,通过hive聚集统计系统总体服务级指标sKPI,对当前t时刻数据进行实时有效性检验,如果检验为无效数据,则剔除当前t时刻数据或者重新获取数据,得到t时刻总体服务级指标sKPI的取值向量x
t
;如果检测为有效数据,则保存数据x
t
,进入步骤3;步骤3,使用基于核函数的异常检测器EXPoSE在线检测系统总线所有服务级指标sKPI的异常分数,并获得故障的发生时间T
fault
;步骤4,计算网元节点间调用耗时的推土机距离,提取机器性能级别特征的突变特征;步骤5,利用随机森林关联模型预测故障根因节点和根因mKPI。2.根据权利要求1所述的方法,其特征在于,步骤3包括:通过以下公式计算异常分数s
t
::是对x
t
进行特征映射,所有映射都是基于高斯核函数;μ[P
t
]是核均值映射,3.根据权利要求2所述的方法,其特征在于,步骤3中,根据得到的异常分数,设定阈值θ,当t和t+1时刻的异常分数均大于阈值θ,则判断t时刻为故障发生时刻。4.根据权利要求3所述的方法,其特征在于,步骤4中,采用如下方法计算网元节点的推土机距离:每次预测到故障发生时间T
fault
后,开始计算:设置t=T
fault
,设置窗口w,对于网元节点i和j:对所有x设置其中,x表示故障时间t之前的时间窗内网元节点之间耗时数据M
i,j
(r),x是随机变量;r是故障时间t前时间窗的开始时间;表示网元节点耗时随机变量的分布;表示随机变量x的指示函数;对所有x设置对所有x设置表示故障后时间窗内节点耗时的分布情况;计算网元节点i、j间的推土机距离s
i,j
(T
fault
):其中,Π(P,Q)表示所有可能...

【专利技术属性】
技术研发人员:刘帆王雪卢非池史鑫博陈智颖马煜王元兰
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1