基于时序的多维度指标异常检测方法及装置

文档序号:36338782发布日期:2023-12-13 16:58阅读:41来源:国知局
基于时序的多维度指标异常检测方法及装置

本发明涉及时间序列数据挖掘领域和机器学习领域,尤其涉及一种基于时序的多维度指标异常检测方法及装置。


背景技术:

1、随着物联网(iot)网络和许多其他连接的数据源的快速增长,时间序列数据有了巨大的增长。与传统的时间序列数据相比,它的数量很大,而且通常有很长的季节性周期。管理和利用这些时间序列数据的基本问题之一是将季节性与趋势分解出来。一个好的季节与趋势分解可以揭示时间序列的基本见解,并在进一步的分析中发挥作用[hochenbaum j,vallis o s,kejariwal a.automatic anomaly detection in the cloud viastatistical learning:,10.48550/arxiv.1704.07706[p].2017.]。例如,在异常检测中,局部异常可能是闲置期间的一个尖峰。如果没有季节性趋势分解,它就会被遗漏,因为它的值仍然比繁忙时期的基线异常值低很多。此外,不同类型的异常现象在分解后对应于不同组件的不同模式。

2、所以时序的异常检测[zeyan li,junjie chen,rui jiao,nengwen zhao,zhijunwang,shuwei zhang,yanjun wu,long jiang,leiqin yan,zikai wang,zhekang chen,wenchi zhang,xiaohui nie,kaixin sui,dan pei:practical root cause localizationfor microservice systems via trace analysis.iwqos2021:1-10]在时序数据监控领域,面临着很多技术挑战:比如说周期是非常复杂的,可能是无周期的、单周期的或者多周期的。同时即便是单周期,它里面会有很多的这种周期的偏移幅度的变化等等。这种周期的趋势它也会包含一些周期,趋势的缓变、突变现象,在实际数据中大量噪声是一种常见的情况。另外运维平台也会收集一些预先定义的指标,通过历史数据与最新收集的数据进行对比,如果与历史数据产生了明显的偏离则有可能出现异常,但是如果物理资源充足的情况下仅仅通过以上预先定义的指标是无法检测到异常的。并且,这种智能运维本身对实时处理要求很高,要求算法的计算复杂度必须要低,能够进行及时的服务响应,并且由于指标没有基线,所以减少异常检测的误判率也是所面临的挑战。

3、目前基于日志的在线异常检测通常基于无监督[nandi a,mandal a,atreja s,etal.anomaly detection using program control flow graph mining from executionlogs[c]//the22nd acm sigkddinternational conference.acm,2016.]的机器学习算法,该算法用于处理应用服务产生的日志,以检测某些服务中是否发生了一些异常情况。特别是,无监督学习算法被用来学习应用服务在无故障运行中的日志行为的基线模型。然后,基线模型被用于在线检测服务新记录的事件是否与基线模型不同,从而表明该服务遭受了某些异常情况。但是由于日志系统体量很大,需要耗费大量的资源但是不能得到较高的准确率,而且也无法保证历史日志可以作为基线使用,所以此方法局限性很大。

4、基于trace的异常检测既有无监督[liu p,xu h,ouyang q,et al.unsuperviseddetection of microservice trace anomalies through service-level deep bayesiannetworks[c]//2020ieee 31st international symposium on software reliabilityengineering(issre).ieee,2020.]、也有有监督的机器学习[nedelkoski s,cardoso j,kao o.anomaly detection and classification using distributed tracing and deeplearning[c]//2019 19th ieee/acm international symposium on cluster,cloud andgrid computing(ccgrid).acm,2019.]、还有trace数据比对[wang t,zhang w,xu j,etal.workflow-aware automatic fault diagnosis for microservice-basedapplications with statistics[j].ieee transactions on network and servicemanagement,2020,pp(99):1-1.]。在所有这些情况下,共同的假设是,应用程序在训练运行中产生的trace数据与它在运行时产生的trace数据是一致的,因此提供了一个基线来比较新产生的trace数据。这与刚才讨论的基于日志的异常检测技术的假设几乎相同,因此带来了同样的局限性:如果应用程序的运行条件与训练运行中的条件不同,同时也未考虑时序问题,异常检测的准确性可能会下降。

5、基于监控信息的异常检测最常见的技术是利用无监督[gulenko a,schmidt f,acker a,et al.detecting anomalous behavior of black-box services modeled withdistance-based online clustering[c]//2018:912-915.]或有监督[du q,xie t,hey.anomaly detection and diagnosis for container-based microservices withperformance monitoring[c]//international conference on algorithms andarchitectures for parallel processing.springer,cham,2018.]的机器学习算法来处理监测的kpi,训练一个基线模型,并通过比较新监测的kpi和这种基线来检测任何应用服务是否发生了异常。这样的方法可以在应用层面和服务层面确定功能和性能异常,但前提是应用在训练阶段和运行时的运行条件是一样的。当应用程序的运行时间条件发生变化时,例如由于终端用户请求的高峰期产生了更高的负载,或者由于部署了新的服务来取代过时的服务,这样的假设导致所颁布的异常检测的准确性可能会下降。

6、综上,目前没有一种在资源充足的环境下,利用监控指标与时序相结合的算法。


技术实现思路

1、针对现有技术中存在的技术问题,本发明提供一种基于时序的多维度指标异常检测方法及装置,该方法在容器微服务环境下,微服务存在冗余备份和负载均衡策略,将磁盘io、数据库读写等指标进行非参数估计后加入到stmv(服务调用的指标向量)中重新训练模型,同时将时间序列分解的方法将上述模型得到的异常trace进行二次检测得到最终的异常trace(微服务调用链)。本发明可以在物理资源充足的情况下对现有研究的stmv二次重构,并且基于时序的多维度进行异常检测,对此前方法进行优化且提高准确率。

2、本发明的技术方案,包括:

3、一种基于时序的多维度指标异常检测方法,包括:

4、获取目标微服务备份的所有节点,并通过监控该些节点的物理资源数据,构造每一节点对应的时间序列和每一微服务调用链对应的pca摘要;

5、基于所述pca摘要形成改良后的stmv后,基于所述改良后的stmv进行分类,以得到每一微服务调用链的第一异常检测结果;

6、根据异常检测准确率要求,提取对应的时间序列;

7、将所述对应的时间序列分解为趋势序列、随机成分序列和季节性序列后,进行异常值的统计检验,以生成异常值集合;

8、基于所述异常值集合对所述第一异常检测结果中的异常微服务调用链进行检测,得到微服务调用链的最终检测结果。

9、进一步地,所述物理资源数据包括:cpu占用率、内存使用率和硬盘使用率。

10、进一步地,所述基于所述改良后的stmv进行分类,以得到每一微服务调用链的第一异常检测结果,包括:

11、对vae模型进行无监督学习的训练,以得到训练后的vae模型;

12、基于所述训练后的vae模型对所述改良后的stmv进行分类,以得到每一微服务调用链的第一异常检测结果。

13、进一步地,所述根据异常检测准确率要求,提取对应的时间序列,包括:

14、在异常检测准确率要求大于一准确率阈值的情况下,提取所有节点对应的时间序列;

15、在异常检测准确率要求不大于该准确率阈值的情况下,提取所述第一异常检测结果中正常微服务调用链所涵盖节点对应的时间序列。

16、进一步地,所述将所述对应的时间序列分解为趋势序列、随机成分序列和季节性序列,包括:

17、对所述对应的时间序列进行周期提取,得到该对应的时间序列包含的所有周期长度;

18、对每一周期长度进行周期分解,以得到趋势序列、随机成分序列和季节性序列。

19、进一步地,对所述对应的时间序列进行周期提取,得到该对应的时间序列包含的所有周期长度,包括:

20、预处理所述对应的时间序列,所述预处理的过程包括:使用线性差值法对所述对应的时间序列中的缺失值进行填充,和使用hp滤波对时间序列中的趋势项进行提取并剔除;

21、针对预处理后的时间序列,使用最大重复离散小波转换分离出不同层次的周期性;

22、基于分解出的周期成分和该周期成分对应的小波方差,对所有周期成分进行强弱排序;

23、依据所有周期成分由强到弱的顺序,输出不同层次的周期性;

24、针对每一层次的周期性,基于费歇尔检验生成每个层次的周期长度候选项后,利用acf对该周期长度候选项进行验证优化,以该层次的周期性所包含的所有周期长度;

25、综合所有层次的周期性所包含的所有周期长度,得到该对应的时间序列包含的所有周期长度。

26、进一步地,所述对每一周期长度进行周期分解,以得到趋势序列、随机成分序列和季节性序列,包括:

27、基于具有稀疏正则化的最小绝对偏差损失,得到该周期长度中所包含的趋势序列;

28、结合所述趋势序列,应用非局部季节性滤波来提取季节性序列;

29、将该周期长度中非趋势序列以及非季节性序列的部分设定为随机成分序列。

30、进一步地,所述进行异常值的统计检验,以生成异常值集合,包括:

31、对于所述趋势序列,计算该趋势序列的均值和标准差,将该趋势序列中的每个数据点与该趋势序列的均值比较,以得到第一差值,并通过所述第一差值与该趋势序列的标准差的比较,判断该趋势序列中的数据点是否为异常值;

32、对于随机成分序列,将该随机成分序列作为残差序列,计算该残差序列的均值和标准差,将随机成分序列中的每个数据点与均值比较,以得到第二差值,并通过所述第二差值与该残差序列的标准差的比较,判断该随机成分序列中的数据点是否为异常值;

33、对于季节性序列,将该季节性序列中的数据点放入一个箱子里,根据该箱子中的数据点计算出上下四分位数和中位数,进而绘制出箱线图,并根据所述箱线图的四分位距来判断该季节性序列中的数据点是否为异常值。

34、一种基于时序的多维度指标异常检测装置,包括:

35、数据采集模块,用于获取目标微服务备份的所有节点,并通过监控该些节点的物理资源数据,构造每一节点对应的时间序列和每一微服务调用链对应的pca摘要;

36、向量构建模块,用于基于所述pca摘要形成改良后的stmv后,基于所述改良后的stmv进行分类,以得到每一微服务调用链的第一异常检测结果;

37、时序异常检测模块,用于根据异常检测准确率要求,提取对应的时间序列;将所述对应的时间序列分解为趋势序列、随机成分序列和季节性序列后,进行异常值的统计检验,以生成异常值集合;基于所述异常值集合对所述第一异常检测结果中的异常微服务调用链进行检测,得到微服务调用链的最终检测结果。

38、一种计算机设备,其特征在于,所述计算机设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现上述任一项所述的基于时序的多维度指标异常检测方法。

39、与现有技术方案相比,本发明最少具有以下优势:

40、1.本发明可以检测出在物理资源充足的情况下,除响应时间以外环境的异常。

41、2.本发明考虑时序,可以更精准的判断出是否因为某个活动大促而导致异常误报或者漏报。

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