智能运维系列多维指标根因定位算法综述

本文主要介绍智能运维中「多维指标根因定位」问题及其解决方案,以下内容主要源于我们组内一位同学对该问题的概述传送门~,已得转载权限。笔者为清华大学博三在读研究生,主要研究领域为智能运维中的根因定位问题。

多维度指标的异常定位是AIOps领域的一个典型且有挑战的问题。在互联网服务运维中,当某个总指标(如总流量)发生异常时,需要快速准确地定位到是哪个交叉维度的细粒度指标(如“省份=北京&运营商=联通”的流量)的异常导致的,以便尽快做进一步的修复止损操作。由于运维中的指标维度多、每个维度取值范围大,导致异常定位时的搜索空间非常大,因此需要一个高效的算法解决该问题。

举说明:一个KPI指标根据多种属性分别监控,例如PageViews(PV),分别统计来自不同ISP和不同省份的PV。如Fig.1所示:

上表中的和分别表示PV的期望的正常值和观测值,我们看到红色的部分观测值和正常值不符,这些PV就是发生了异常。

多维根因定位算法解决的是定位发生异常时哪些维度的属性取值导致了异常,比如Fig.1中的根因维度是「(Province=Beijing&Shanghai,ISP=*)」

更详细的问题描述可以参考第二届智能运维挑战赛传送门~,赛题为「多维监测指标的异常定位」。

对于这个问题的解决方案可以参考获奖选手的答辩材料传送门~

主流的算法可以分为两类:

也有一些其他的方法,比如用神经网络去做多分类,但是方法我感觉不是很实用,也没有发在很好的会议上,就略去了。

主要有INFOCOM'16[^1],SIGMETRICS'20[^2]和FSE'17[^3]

其中前两者都是首先对所有属性组合进行异常检测,然后用Apriori算法去搜索support超过阈值的属性组合,再根据confidence去筛选。

FSE'17可能原本目标的问题和这里的问题不太一致,但是比较类似。它使用的Contrastsetmining可以看为一种特殊的关联规则挖掘。contrastsetmining是挖掘在不同的类中分布(support)差别很大的属性组合,而前两者挖掘的是和某个特定的类(即异常)关联的属性组合。

就我个人的经验,关联规则挖掘在参数(support和confidence的阈值,异常检测的阈值)合适的情况下,可以取得非常好的效果。但是显然这些参数随着数据集和故障案例的不同会有不同的最佳取值,因此实际上这一类方法的效果可能不太稳定。

「1.Adtributor」[^4][NSDI'14]

假设根因只可能是一个属性出了问题,例如只有可能是某一个省份或者某一运营商的问题,而不会是某个省份的某个运营商的问题。即(Province=Beijing,ISP=*)和(Province=*,ISP=ChinaMobile)都是合法的根因,而(Province=Beijing,ISP=ChinaMobile)是不会出现的。这个假设大大简化了问题,但是明显是不能覆盖实际的需求的。

Adtributor提出了两个指标用来评估属性组合。一个是解释力,指的是该属性组合对应的指标变化和整体的指标变化的比例。另一个是surprise,一个属性下面的各个指标的取值的分布是否有变化,根因属性的话应该有明显变化。

因为是只考虑一个属性,所以搜索空间并不大,基本上就是搜索解释力和surprise最大的属性。

「2.iDice」[^5][ICSE'16]

首先iDice处理的问题是我们讨论问题的一个子集,它只专注处理issuereport数量增加的根因。即考虑的指标只有issuereport的数量。

iDice的目标函数如下

其中指的是属性组合对应的issuereport占所有issue的比例。和分别指的是异常时刻后(after)和前(before)。整个公式就是两个比例的fisherdistance。

为了加速搜索,iDice提出了三个剪枝策略。

「3RecursiveAdtributor」[^6]

这是一篇学位论文中提到的。RecursiveAdtributor主要是为了解决Adtributor的不合理的假设的问题。基本的思路是递归调用Adtributor。Adtributor会返回一个根因属性和对应的取值,RecursiveAdtributor就会在选出来的切片3.上递归调用Adtributor,得到下一个根因属性和对应的取值。

「4.HotSpot」[^7][IEEEAccess'18]

我们实验室之前的工作。

基于这个假设,Hotspot设计了一个目标函数叫potentialscore。这个分数评估两方面的内容:对于待评估属性组合的更细粒度属性组合,它们的指标应该是异常的并且服从rippleeffect;另一方遍,对于其他的属性组合,它们的指标应该是正常的。

HotSpot和其他工作例如iDice很不一样的一点就是,它显式地考虑了有多个根因同时作用的情况。因此搜索空间直接变成了属性组合数目的幂,搜索空间的极大地增加了。

为了解决这个问题,HotSpot采用了MCTS算法(蒙特卡洛树搜索,AlphaGo用过的)来进行启发式搜索。

「5.Squeeze」[^8][ISSRE'19]

我本人的工作。

Squeeze的目标函数也基本还是potentialscore,只是做了一些改进,使得对于根因的属性数量比较大,根因的指标变化相比整体不够显著的时候,算法效果稳健了很多。

最大的变化是搜索过程。Squeeze没有采用暴力搜索加MCTS优化。而是采用了一套启发式策略来大大加速搜索,同时避免性能损失。

首先,根据rippleeffect,我们发现同一个根因所影响的细粒度属性组合的指标变化比例是相同的。因此我们利用这种先对细粒度属性组合进行聚类。

之后,我们在每一类中再去搜索根因。因为此时已经不用考虑多根因同时作用的影响,所以问题简化了很多。

此时,我们又采用了一个启发式策论。基本的思路是,根因属性组合对应的细粒度属性组合的指标应该都是异常的。

「6.MID」[^9][FSE'20]

和iDice针对的是同样的问题,采用了iDice相同的目标函数。不同之处在于搜索策略不同。

MID采用了Meta-heuristicSearching的策略,它定义了四个操作,每个可以把一个属性组合更新为一个新的。然后定义了一个meta-heuristic函数,用来评测一个属性取值是不是更有可能在根因中。具体的做法是评估其熵。

最后在搜索过程中,在每一步中MID评测当前属性组合的目标函数值,然后随机选择一个操作,根据meta-heuristic函数选择操作要增删改的属性和取值,最后得到一个新的属性组合,进去下一轮循环。

这个方法看起来很简单,但是有个巨大的问题就是每次随机选择的操作有可能重复出现已经搜索过的节点。但是如果简单禁止重复,那么就无法在搜索路径上进行回溯。因此这里需要一个合适的策略,我不太清楚怎么做能达到最好的效果。可惜原论文没有提及方法的细节。

「7.ImpAPTr」[^10][ISSRE'20]

ImpAPTr只处理成功率下降的异常。

ImpAPTr提出了两个目标函数,和Adtributor用过的解释力和surprise基本思路一致。但是ImpAPTr并没有假设单属性组合。它还是会搜索多个属性的组合,然后用这两个目标函数分别排序。再用排序得到的排名的均值作为最后的排序依据。

这个方法在根因的属性数量不多以及单根因的时候效果很好。

「8.AutoRoot」[^11]

改进了Squeeze。

首先是提出一种对聚类方法的修改,主要是在聚类之前会用KDE对density做一遍平滑。应该是比较有作用的。

其次是把generalizedpotentialscore中的绝对误差改成了相对误差。这在指标的时序预测误差较大的时候会受很大影响。

最后使用了在类内搜索的时候采用了一种新的启发式策略,比Squeeze多考虑了一些。

[^1]:F.Ahmed,J.Erman,Z.Ge,A.X.Liu,J.Wang,andH.Yan,“Detectingandlocalizingend-to-endperformancedegradationforcellulardataservicesbasedontcplossratioandroundtriptime,”IEEE/ACMTransactionsonNetworking(TON),vol.25,no.6,pp.3709–3722,2017.

[^4]:R.Bhagwan,R.Kumar,R.Ramjee,G.Varghese,S.Mohapatra,H.Manoharan,andP.Shah,“Adtributor:Revenuedebugginginadvertisingsystems,”in11thUSENIXSymposiumonNetworkedSystemsDesignandImplementation(NSDI14),2014,pp.43–55.

[^5]:Q.Lin,J.-G.Lou,H.Zhang,andD.Zhang,“idice:problemidenticationforemergingissues,”in2016IEEE/ACM38thInternationalConferenceonSoftwareEngineering(ICSE).

[^6]:M.PerssonandL.Rudenius,“Anomalydetectionandfaultlocalizationanautomatedprocessforadvertisingsystems,”Master’sthesis,2018,g¨oteborg:ChalmersUniversityofTechnology.

[^7]:HotSpot:AnomalyLocalizationforAdditiveKPIswithMulti-DimensionalAttributesYongqianSun,YoujianZhao,YaSu,DapengLiu,XiaohuiNie,YuanMeng,ShiwenCheng,DanPei,ShenglinZhang,XianpingQu,XuanyouGuo.IEEEAccess2018.

[^8]:GenericandRobustLocalizationofMulti-DimensionalRootCausesZeyanLi,ChengyangLuo,YiweiZhao,YongqianSun,KaixinSui,XipingWang,DapengLiu,XingJin,QiWangandDanPei.ISSRE2019

[^10]:G.Rong,H.Wang,Y.You,H.Zhang,J.Sun,D.Shao,andY.Xu.2020.LocatingtheCluesofDecliningSuccessRateofServiceCalls.In2020IEEE31stInternationalSymposiumonSoftwareReliabilityEngineering(ISSRE),335–345.

[^11]:PengkunJing,YanniHan,JiyanSun,TaoLin,andYanjieHu.2021.AutoRoot:ANovelFaultLocalizationSchemaofMulti-dimensionalRootCauses.In2021IEEEWirelessCommunicationsandNetworkingConference(WCNC),1–7.

THE END
1.人工智能优化研究:历史现状与未来展望随着人工智能的不断发展,优化研究在其中扮演着关键的角色。本文将深入探讨优化研究在人工智能领域的发展,遇到的问题以及未来的展望,同时关注其与其他方向的交叉结合,技术的应用,国际研究趋势等方面。 1. 优化研究的发展 1.1 传统优化算法 进化算法与遗传算法:传统优化算法在早期为问题提供了一些解决方案,特别是进化算法https://blog.csdn.net/BetrayFree/article/details/135257103
2.基于智能优化算法的高效用项集挖掘方法综述基于智能优化算法的高效用项集挖掘方法综述,高效用项集挖掘,智能优化算法,粒子群优化算法,进化算法,启发式算法,高效用项集挖掘(HUIM)能够挖掘事务数据库中具有重要意义的项集,从而帮助用户更好地进行决策。针对智能优化算法的应用能够显著https://wap.cnki.net/touch/web/Journal/Article/JSJY202306003.html
3.基于群智能优化算法的医学图像分割综述随着智能技术的快速发展,越来越多的人将智能优化算法应用到医学图像分割中,其中群智能优化算法是当今热门的研究课题。群智能优化算法是指人类参考群体生活的昆虫、动物的复杂社会行为而提出的模拟生物系统中群体生活习性的一种新算法。本文主要介绍了包括粒子群算法(PSO)、萤火虫算法(FA)、布谷鸟搜索算法(CS)、蝙蝠算法https://www.cnki.com.cn/Article/CJFDTotal-GJSX201905014.htm
4.科学网—智能算法综述智能算法综述 摘要:随着计算机技术的飞速发展,智能计算方法的应用领域也越来越广泛,本文介绍了当前存在的一些智能计算方法,阐述了其工作原理和特点,同时对智能计算方法的发展进行了展望。 关键词:人工神经网络 遗传算法 模拟退火算法 群集智能 蚁群算法 粒子群算https://blog.sciencenet.cn/blog-85556-44718.html
5.边缘计算资源分配与任务调度优化综述腾讯云开发者社区区别于启发式规则,智能算法力争全局的优化性能。文献[62]利用GA优化任务-边缘节点群的分配。文献[12]采用概率表征任务间的前后位置关系,在基于启发式方法的DAG预分割后,利用双变量相关的分布估计算法排序任务,同时优化应用整体完成时间和边缘节点能耗。文献[27]考虑任务截止时间信息,利用EDA优化总拖期。针对任务-节点分https://cloud.tencent.com/developer/article/1909425
6.人工智能算法综述本文通过对若干智能算法的综述,在一定程度上集合总结了大部分算法的基本原理、功能特点、应用领域,并对其加以比较,使人们能够对人工智能算法有更清晰明了的认识,减少对算法应用方面上的失误让使用者能够方便快速的了解到各算法的相关资料从而提高运算效率。 人工智能算法要解决的一般是最优化问题,智能算法最优化问题是一http://www.360doc.com/content/15/1009/10/17040482_504355165.shtml
7.智能汽车中人工智能算法应用及其安全综述智能汽车环境感知算法作为智能汽车规划决策和控制执行的基础环节,是智能汽车研究的关键技术之一,也是智能汽车当前研究的热点问题。本文对智能车中的环境感知算法进行综述,其次总结了当前决策规划层的研究情况。 1)目标检测算法 目标检测的任务是找出图像或视频中的感兴趣物体,同时检测出它们的位置和大小,是机器视觉领域的核https://www.yoojia.com/ask/17-11900815188486720700.html
8.TCCT通讯Newsletter2017No.01保证智能轮椅平滑通过狭窄通道的路径曲率优化算法 自动化学报, 2016 Vol. 42 (12): 1874-1885 Abstract | PDF 杜惠斌, 赵忆文, 韩建达, 赵新刚, 王争, 宋国立 基于集员滤波的双Kinect人体关节点数据融合 自动化学报, 2016 Vol. 42 (12): 1886-1898 Abstract | PDF 王晓峰, 李醒, 王建辉 基于无模型自适应https://tcct.amss.ac.cn/newsletter/2017/201701/journal.html
9.决策树算法综述8篇(全文)决策树算法综述(精选8篇) 决策树算法综述 第1篇 随着数据库技术的发展,人们搜集数据的能力大幅度提高,可以非常方便地获取和存储大量的数据,但却无法从这些数据中发现潜在的规律,无法预测未来的发展趋势。如何有效的利用这些数据为人类服务,已成为人们研究的热点之一。数据挖掘技术能自动和智能地从大型数据库中提取隐含https://www.99xueshu.com/w/ikeyyv1ig3dg.html
10.蚂蚁金服核心技术:百亿特征实时推荐算法揭秘阿里妹导读:本文来自蚂蚁金服人工智能部认知计算组的基础算法团队,文章提出一整套创新算法与架构,通过对TensorFlow底层的弹性改造,解决了在线学习的弹性特征伸缩和稳定性问题,并以GroupLasso和特征在线频次过滤等自研算法优化了模型稀疏性,在支付宝核心推荐业务获得了uvctr的显著提升,并较大地提升了链路效率。 https://maimai.cn/article/detail?fid=1010621115&efid=mIQCHnkj0zjxlpygUmo5mg
11.综述:基于多维光场调控的超构表面先进成像与显示据麦姆斯咨询报道,南京大学物理学院固体微结构物理国家重点实验室的科研团队结合相关智能算法,综述了超构表面在多维成像、全息显示以及这些技术交叉领域的应用,探讨了其在计算成像、超分辨成像、可调谐显示技术,以及与光学微操控和量子技术协同发展方面的潜力。最后,对超构表面技术在成像与显示领域的广泛应用前景及未来研究https://www.eet-china.com/mp/a355598.html
12.虚拟电厂,豹变前夜虚拟电厂能够聚合分布式发电、储能、可控负荷资源,利用通信技术和软件算法优化电力调度,参与需求侧响应或电力交易从而最大化收益,较其他形式的电厂具有成本低、效率高的优势,投入成本约为火电厂的1/8,是全球智能电网发展的重要技术之一。 全球虚拟电厂已发展出欧洲、美国两种主要模式。海外虚拟电厂以欧洲、美国两种模式为https://wallstreetcn.com/articles/3664491
13.灰狼优化算法(GreyWolfOptimizer).pdf最原始的灰狼优化算法,全面解释了灰狼优化算法的来源和基础应用,适合初学者。群智能优化算法,灰狼优化算法https://www.iteye.com/resource/merry_hj-11449641