SlideShare a Scribd company logo
多维监测指标的异常定位
H3C AI 研究院
院长:敖襄桥
领队:张闯
队员:赵国柱、陈瑞
H3C AI研究院定位
新华三集团前沿技术研发机构,为各产品提供AI技术支撑。
AI领域对外合作的牵头部门,如承担国家、省级AI课题研究。
AI研究院
探索新方向
云计算、物联网、服务器、网
络、安全等产品
 预赛0.8319 第八名
 决赛0.9438 第四名
 注:
 预赛时使用的是单个方法,目的是为了验证单个方法效果
 决赛时使用的是集成方法,目的是为了提高成绩
比赛分数
 问题简述
 数据探索
 预测方案
 解决方案
提纲
 在互联网服务运维中,当某个总指标(如总流量)
发生异常时,需要快速准确地定位到是哪个交叉维
度的细粒度指标(如“省份=北京 & 运营商=联通”的流
量)的异常导致的,以便尽快做进一步的修复止损
操作
问题简述
问题简述
数据
 问题简述
 数据探索
 预测方案
 解决方案
提纲
 第二个数据集1539325500000时刻有异常
 i13&e11&p17下只有两个叶子节点(比较稀疏)
 c5&l3约增长一万多倍
 c3&l3都为0
 找出i38&e08&p24下有11叶子节点,
 可以看到c1&l4和c1&l2的增长很多,并且增长的倍数相近,几百倍
 但c4&l4的增长倍数明显不同,只有几倍
 而c1&l3的增长倍数只看前面几个值难以确定
异常的KPI增长倍数差别较大
数据探索-KPI总和形态
第二个数据集中有14天数据,5分钟一个点,共4032个点
红点为给出的所有的需要定位根因的异常点
第三个数据集中有14天数据,5分钟一个点,共4032个点
红点为给出的所有的需要定位根因的异常点
下图为第三个数据集中3400到第3500个点的范围内的曲线,绿色实线为所有KPI的值的总和
对应的曲线,黄色线为去掉异常点后进行插值得到的曲线,绿色线为二次指数平滑fit的曲线
下图为第三个数据集第954到第1014个点的范围内的曲线,绿色实线为所有KPI的值的总和对应
的曲线,蓝色线为去掉异常点后进行插值得到的曲线,绿色线为三次指数平滑fit的曲线
其它 其它
数据探索-单个KPI形态
• 第三个数据集中有14天数据,5分钟一个点,共4032个点,下图为第3100到第3200个点的范围内的曲线
• 蓝色虚线为KPI (i06, e10, c5, p14, l3)对应的曲线
• 黄色线为去掉异常点后进行插值得到的曲线
• 绿色线为二次指数平滑fit的曲线
• 红点为给出的所有的需要定位根因的异常点
 问题简述
 数据探索
 预测方案
 解决方案
提纲
 Prophet,每个大部分时间不为0的KPI训练一个模型,不仅能得
到预测值,还能得到预测区间,顺带可以一定程度上做异常检
测,难以逐点检测
 R forecast包中的ETS,也需要每个大部分时间不为0的KPI训练
一个模型,不仅能得到预测值,还能得到预测区间,顺带可以
一定程度上做异常检测,但是涉及到python调用R的接口,增加
最终运行的docker环境的复杂性
 使用python实现指数平滑类(二次或三次指数平滑),每个KPI
单独训练最佳参数,可以逐点预测,进行预测时速度会非常快,
应该能满足性能需要
预测
Prophet效果
• KPI(i02, e08, c1, p03, l3)上缺省参数使用Prophet的效果,不仅能得到预测值,还能得到预测区间,
顺带可以一定程度上做异常检测, (为了消除正常波动对根因定位的影响,曾经设想过对于真实值在区间内时将预测值
设置等于真实值,这样可以消除正常波动的影响,凸显出异常)
 但是在抽样查看数据集时发现
 有些KPI在第二个第三个数据集里面形态不一致,
 并且在相同数据集中有个别的KPI的形态也会随时间发生变化
 因为最后决赛时是不是会冷启动,能有多长时间的数据可供训
练确定超参都不是很确定
 且因为开发时间不多,并且考虑到后期执行时可能会对执行时
间的影响,以及需要检测预测效果,当预测偏差大时启动重新
训练,增加代码复杂度
 因此没有使用复杂的预测方法
预测
同比数据
 周同比数据  日同比数据
 红色线为KPI总值的曲线,红点为需定位根因的时间点
 下面绿色和紫色的线为两个异常KPI的曲线
 蓝线为KPI总值减去两个异常KPI的值后余下KPI总和的曲线
 黄色为前一天和后一天KPI总值曲线
 黑色为KPI总值的移动中值曲线,选用中值是因为和均值比受异常值的影响小
 历史同期期值不如移动中值更接近
 最终只用了当前点和前几个点的中值作为预测值,编程简单,执行速度快,可以冷启动
最总决定使用移动中值
 问题简述
 数据探索
 预测方案
 解决方案
提纲
 预测直接用前几点和当前点的中值,简单快捷,不
用太多历史数据,可以冷启动,部署后可以迅速开
始工作
 借鉴Hotspot中计算Potential Score的方法和
Recursive Adtributor方法
 实现多个决策器,最终加权投票得到最终结果
 执行速度快,定位一个根因在10秒以内
解决方案
Terms
--HotSpot: Anomaly Localization for Additive KPIs with Multi-Dimensional
Attributes
--Anomaly Detection and Fault Localization
 对于每个Attribute,分别计算此Attribute内的values的Surprise,
而后排序,大于一定EP阈值的纳入根因集,Surprise做和,当
总的EP大于总阈值时停止增加,
 每个Attribute的根因集比较总的Surprise,选取最大的
Adtributor
Adtributor
Adtributor: Revenue Debugging in
Advertising Systems
 综合各个论文的方法,我们用了迭代切片的方法,先从总的
Cube对第一层使用类似adtributor的方法找到应该从哪个
Attribute去切(找根因),找出相应的elements,并且将相应的
element做为新的Cube,再次迭代用类似Adtributor的方法在新的
Cube中找到应该从哪个Attribute中去切(找根因),依此类推。
 什么时候终止切片根据Isolation Power是不是能得到提升作
为判断依据
切片方法
判断是不是继续切分的依据
iDice: Problem Identification for Emerging
Issues
 可以想象整个cube为一个大切糕,先用类似adtributor的方法找到应该
从那个Attributes去切,比如应该从Attrbute C的维度找出Attrbute Values为
c1的切片,则直接将C==c1的数据全取出形成一个新的切糕(cube),同时
C这个Attribute后续不需要再考虑了,同时计算出c1的isolation power
 而后在这个新的切糕(cube)中,再用类似adtrbutor的方法找到应该从那
个维度去切,比如Attribute B中找到了b1、b3 ,Attribute A 中找到了a3,
计算总surprise,发现b1、b3的surprise更大,则本层应该从B切,切出
c1&b1;c1&b3,计算c1&b1;c1&b3的isolation power来同上一层c1的isolation
power比较判断是不是本次切是应该的
 如果c1&b1;c1&b3的isolation power大,则应该切,取出C==c1&B==b1的数据作为新的切片,
C==c1&B==b3的数据也作为新的切片,继续判断余下的Attribute,以此类推,直到isolation不再下降为
止
 如果c1&b1;c1&b3的isolation power小,则不应该切,直接返回c1为根因
切片方法
 两个维度
 箭头左侧为预测值
 箭头右侧为真实值
 A的Surprise为0.002084691793860817 EP为0.9
 B的Surprise为0.0023829811435295764 EP为0.1
 2的Surprise为0.0032082965862361007 EP为1
 1的Surprise为0.003793113576346145 EP为0
 按Adtributor原论文的方法进行计算应该会过滤掉EP为0的,计算总Surprise,选出A&B为根因,但是实际根
因很明显是2
 解决方法1:遵从JS散度的原始定义,计算JS散度时考虑所有元素因此也包含1,而后根据JS散度最大的来决
定应该选择那个Attribute,而在这个Attribute内选取根因时再过滤掉EP小的
 解决方法2:计算Surprise时乘EP,成为加权平均的Surprise
 实验证明有效,且两种解决方法可以互补
 此问题为我们队员赵国柱发现并用C实现了两种方法,但时间关系,并没有把C程序集成入最后程序,只是
在python代码中借鉴了方法2的思路
Adtributor的问题
1. 每一层总体判断应该从哪个Attribute去切,从而保证各层切的Attribute是
一致的或各elements自己分别判断从哪个Attrbute去切(虽然中途可能路径不一
致,但结果会一致)
2. 各个切片分别根据各自计算的isolation power来各自判断是不是继续切分
下去,供后续投票或根据isolation power减少、相等和增加的数量综合判断
决定是不是切到下一层(主要因为有很多为零的以及其他情况导致Isolation Power相等,
因此是不是继续切要参考其他切片)
3. 先聚合再取移动中值或先移动中值再聚合
4. 先用所有的元素的Surprise计算总的JS散度后选总Surprise最大的属性,再
在这个维度中找根因或先计算Surprise时乘EP,求得加权平均Surprise
将上述不同方法进行组合,实现多个切片程序,将结果进行投票(绿色为时间
关系目前没有合入的,合入后增强互补作用,分数应该会更高)
切片方法的不同实现
 切片的方法在普通服务器上执行定位一个根因约为1.1秒,在主
办方的服务器上执行定位一个根因约为0.6秒
切片方法-速度
 每个cuboid找出根因集,比较各个cuboid的根因集得分,得到
最终根因
HotSpot
HotSpot
--HotSpot: Anomaly Localization for Additive KPIs with Multi-Dimensional
Attributes
 第二个数据集1539286500000时刻有异常,根因为e10&p24&l2;e09&p12&l3
 找出e10&l2对应的数据,可以看到含p24的只有两项,且增长很大
 也可以对P列进行聚合,可以看到p24的增长约为30000倍
 根因的element的真实值除预测值倍数,如果和此element各叶子节点的真实值除预测值倍数相符,则Potential
Score会比较大,但是如果预测不准的话,会导致预测倍数不符,即使是真正的根因Potential Score会受影响而相
对小些
预测不准时可能会受的影响
 第三个数据集1539647700000,根因集为i02&p16;i43&p35;i05&p16
 i02&p16的所有数据如下,可以看到根因应该是i02&p16
 但i02&p16&c1&e01&l3的值比i02&p16&c1&e09&l3的前几个值比都偏小,因此如果i02&p16&c1&e01&l3的预测值比
i02&p16&c1&e09&l3的预测值小,但是i02&p16&c1&e01&l3的真实值比i02&p16&c1&e09&l3的真实值大的话,会造成
i02&p16 Potential Score比较小,而下层cuboid的Potential Score比较大的情况
预测不准时Potential Score会比较低的情况
 在预测不是很准的情况下,有时会出现层次越深,同时根因集的
elements增多时, Potential Score会越高,道理类似与回归树的树越深,
会拟合的越好类似
 本方案解决方法:层次越深且根因的elements明显增多则惩罚越重
预测不准时会带来的一些小问题-层深
 同层加入元素数量问题:加入元素越多, Potential Score趋向于越大,见下图Ad Unit3为可以理解为正常波动
而不是根因,不应该被加入,但是加入后确实可以使Potential Score增大,论文中使用EP过滤掉正常波动,
 本方案解决方法:除了用EP过滤正常波动也同时根据Potential Score增大的幅度开始明显变小停止增加(肘部
法则)
预测不准时会带来的一些小问题
--图表摘自Anomaly Detection and Fault Localization
 {Partner 1, Partner 2} Potential Score是0.99但是所有叶子节点的Potential Score是1,论文中用另外的计算叶
子节点Potential Score的方法,
 本方案解决方法:每增加一个叶子节点同时综合看R值等值的变化和个数限制的方法来解决
Potential Score结合其他全局指标一起判断
iDice: Problem Identification for
Emerging Issues
Adtributor: Revenue Debugging in
Advertising Systems
 Potential Score方法在普通服务器上执行定位一个根因约为
9秒,在主办方的服务器上执行定位一个根因约为6秒
Potential Score方法-速度
 集成的思想
 多个基决策器集成
 基决策器差异越大,集成效果越好
 集成了Potential Score和迭代切片的方法,采用加权投票
机制得到最终的答案
 效果稳定
集成
 Potential Score类程序,返回topn(目前是两个)的根因集
 迭代切片类程序,返回一个根因集
 每个程序单独执行,结果都会有一个平均分数
 根据每个程序的得分作为权重
 每个程序返回的根因集加权后得到各个根因的得分
 最终选择排名最高的和同cuboid内的其他项(因为考虑到有的基决策器会漏项),如
 i03&e4 350
 i04&c3 340
 p1&c2&l4 310
 i04&e8 300
 则最终返回i03&e4;i04&e8
投票方法
1,实现更精准的预测
2,进行错误分析,仔细分析识别错误的原因,找到更
好的指标或解决方案
3,增加更多的基决策器,因为目前整体程序定位一个
根因只用10秒以内,因此还可以增加更多基决策器
如果还有时间
 Yongqian Sun, Youjian Zhao, Ya su, et al., “HotSpot:Anomaly Localization for
Additive KPIs withMulti-Dimensional Attributes”, IEEE Access, 2018.
 R. Bhagwan, R. Kumar, and R. o. Ramjee, “Adtributor: Revenue debugging in
advertising systems,” NSDI, 2014, pp. 43–55.
 Q. Lin, J. Lou, H. Zhang, and D. Zhang, “idice: problem identification for
emerging issues,” ICSE, 2016, ACM,, pp. 214–224.
 Linnea Rudenius Moa Persson “Anomaly Detection and Fault Localization
An Automated Process for Advertising Systems”
 http://iops.ai/competition_detail/?competition_id=8&flag=1
参考文献
 有任何问题欢迎联系
 zhangchuang@mail.nankai.edu.cn
 15801299218
请多指教

More Related Content

DOCX
Gps tracking system
PDF
脳保護療法の新展開 ー脳低温療法ー
PPTX
CHAPTER 1 PRINCIPLES OF RADAR.pptx
PDF
Blockchain overview, use cases, implementations and challenges
PPTX
第六名 6th Aurora
PDF
How to run an AI Project @pixnet
PDF
參考講義展示版-丘祐瑋-20170617-機器學習python入門者課程
Gps tracking system
脳保護療法の新展開 ー脳低温療法ー
CHAPTER 1 PRINCIPLES OF RADAR.pptx
Blockchain overview, use cases, implementations and challenges
第六名 6th Aurora
How to run an AI Project @pixnet
參考講義展示版-丘祐瑋-20170617-機器學習python入門者課程

Similar to 第四名 4th H3C AI Institute (20)

PDF
市場調查
PDF
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
PDF
Intro to Python - BMI Case Practice
PDF
Python introduction and data visualization publish
PPT
630153007 周泓佐 630153010_張馨元_630153034_廖子明_530053014_張郁_data_minug_app應用
PPTX
What is data engineer?資料工程師是什麼?
KEY
网站数据分析
PPTX
清潔機器人產業分析報告
PDF
資料科學的第一堂課 Data Science Orientation
PPT
数据挖掘技术概述及前景展望
PPT
腾讯大讲堂39 数据运营规划理念及方法概要介绍
PDF
阿里巴巴数据中台实践分享.pdf
PPT
六合彩 » SlideShare
PPT
六合彩,香港六合彩
PPT
六合彩,香港六合彩
PPT
香港六合彩-六合彩 » SlideShare
PPT
香港六合彩 » SlideShare
PDF
医药企业的数字化转型 - 逻辑数据结构策略
PDF
[台灣人工智慧學校] 人工智慧技術發展與應用
市場調查
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
Intro to Python - BMI Case Practice
Python introduction and data visualization publish
630153007 周泓佐 630153010_張馨元_630153034_廖子明_530053014_張郁_data_minug_app應用
What is data engineer?資料工程師是什麼?
网站数据分析
清潔機器人產業分析報告
資料科學的第一堂課 Data Science Orientation
数据挖掘技术概述及前景展望
腾讯大讲堂39 数据运营规划理念及方法概要介绍
阿里巴巴数据中台实践分享.pdf
六合彩 » SlideShare
六合彩,香港六合彩
六合彩,香港六合彩
香港六合彩-六合彩 » SlideShare
香港六合彩 » SlideShare
医药企业的数字化转型 - 逻辑数据结构策略
[台灣人工智慧學校] 人工智慧技術發展與應用
Ad

More from Leo Zhou (20)

PPTX
第三名 3rd zhyict
PDF
异常检测在苏宁的实践
PPTX
第二名 2nd 火眼金睛
PPTX
第一名 1st Bocoiops
PDF
AI使能网络自动驾驶 AI Building Autonomous Driving Network
PDF
2.2 go在阿里云cdn系统的应用
PDF
1.6 米嘉 gobuildweb
PDF
1.4 go在数据存储上面的应用—毛剑
PDF
1.2 刘奇 go在分布式数据库中的应用
PDF
Protocol libraries the right way
PDF
美团数据库运维平台介绍
PDF
特卖场景下的大数据平台和机器学习实践
PDF
我的互联网运维理论与实践
PDF
如何选择 Docker 监控方案
PDF
美团数据库运维平台介绍
PDF
The net is dark and full of terrors - James Bennett
PDF
Hypothesis randomised testing for django
PDF
NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享
PDF
动静态混合网站或 APP的CDN优化方法
PDF
MySQL运维那些事
第三名 3rd zhyict
异常检测在苏宁的实践
第二名 2nd 火眼金睛
第一名 1st Bocoiops
AI使能网络自动驾驶 AI Building Autonomous Driving Network
2.2 go在阿里云cdn系统的应用
1.6 米嘉 gobuildweb
1.4 go在数据存储上面的应用—毛剑
1.2 刘奇 go在分布式数据库中的应用
Protocol libraries the right way
美团数据库运维平台介绍
特卖场景下的大数据平台和机器学习实践
我的互联网运维理论与实践
如何选择 Docker 监控方案
美团数据库运维平台介绍
The net is dark and full of terrors - James Bennett
Hypothesis randomised testing for django
NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享
动静态混合网站或 APP的CDN优化方法
MySQL运维那些事
Ad

第四名 4th H3C AI Institute