Holmes

Stella981
• 阅读 590

Holmes

阿里QA导读:

你的监控又要加规则了吗?

你的监控又误报了吗?

你的监控够智能化吗?

快来看看董福铭、黄俊老师如何利用AI算法解决大数据监控的问题吧~

【前言】


指标监控关乎稳定性,但随着数据量的增加、指标的复杂周期性和模式变化的动态性,基于阈值/同比环比的规则难以适用,而且复杂的领域知识导致为每条指标配置相应的规则费时费力,无法应用在大规模数据监控上。在监控的有效性方面,传统的规则报警无法智能识别季节性,也经常受到噪声/抖动数据的干扰而导致误报,固定的规则以及阈值更无法进行提前预警。

在这样的背景下,淘系技术质量团队打造了一款基于AI算法的异常检测平台,Holmes是一款智能化、轻量级、易接入、可扩展的异常检测平台,使用基于AI的异常检测算法,替代传统的规则监控方案。解决规则告警系统准确率低、时效性低、规则配置复杂与耗费人力等诸多问题。

Holmes目前已经在集团内进行开放,覆盖淘宝、千牛、优酷、钉钉、淘宝直播等多个应用,核心指标量200+,整体准确率在90%以上,算法调用量高达1000万余次,有效进行故障的提前预警20余次。

平台理念

Holmes通过AI算法对业务指标进行检测和预测,从而实现智能化报警,弥补了规则监控的不足,减少误报和漏报情况。提供一站式的异常检测服务,满足时序数据的实时检测,提供多种接入方式,利用机器学习和深度学习方式,定制化学习模型,有效提升报警覆盖率,以智能化方式对稳定性的监控和保障。

  • 特点:

  • 学习历史数据,分析当前指标曲线趋势是否异常

  • 基于以往数据,进行预测未来指标走势

  • 优势:

  • 算法检测代替规则检测

  • 告警准确率高

  • 更早发现异常情况

  • 可适应业务发展带来的趋势变化

  • 解决的异常场景:

Holmes

系统架构

Holmes

配置化流程


通过4步简单配置进行指标的接入和算法选择,轻松开启智能异常检测。

Holmes

算法概览

Holmes融合了多种检测、预测的时序算法,检测异常响应速度快,预测数据走势准,二者的完美结合,奠定了异常检测的基础能力,同时平台也支持扩展算法的能力,以适应新增场景的特殊需求。

检测算法

_1):_Statistic

In statistics, the 68-95-99.7 rule is a shorthand used to remember the percentage of values__that lie within a band around the mean in a normal distribution with a width of two, four and__six standard deviations, respectively; more accurately, 68.27%, 95.45% and 99.73% of the values__lie within one, two and three standard deviations of the mean, respectively.

Holmes

2):Ewma

_In statistical quality control, the EWMA chart (or exponentially weighted moving average chart)_is a type of control chart used to monitor either variables or attributes-type data using the monitored business__or industrial process's entire history of output. While other control charts treat rational subgroups of samples__individually, the EWMA chart tracks the exponentially-weighted moving average of all prior sample means.

Holmes

3):Polynomial

In statistics, polynomial regression is a form of regression analysis in which the relationship__between the independent variable x and the dependent variable y is modelled as an nth degree polynomial in x.

Holmes

4):IsolationForest

The IsolationForest 'isolates' observations by randomly selecting a feature and then__randomly selecting a split value between the maximum and minimum values of the selected feature.

_5):_XGBoost

XGBoost is an optimized distributed gradient boosting library designed to be highly efficient, flexible and portable. It implements machine learning algorithms under the Gradient Boosting framework. XGBoost provides a parallel tree boosting (also known as GBDT, GBM) that solve many data science problems in a fast and accurate way. The same code runs on major distributed environment (Hadoop, SGE, MPI) and can solve problems beyond billions of examples.

预测算法

1):Tensorflow-LSTM

_Long Short-Term Memory layer - Hochreiter 1997._预测效果图:

Holmes

2):Facebook-prophet

Prophet is a procedure for forecasting time series data based on an additive model where non-linear trends are fit with yearly, weekly, and daily seasonality, plus holiday effects. It works best with time series that have strong seasonal effects and several seasons of historical data. Prophet is robust to missing data and shifts in the trend, and typically handles outliers well.

实践效果


目前Holmes异常检测平台已经在集团内部开放接入和运行,支持集团内常用数据源。平台运行几个月以来,帮助接入业务方的开发测试同学构建智能监控体系,减少繁琐的规则配置,有效提高了线上质量监控的覆盖率。今年618大促期间,Holmes的准确性方面也进一步得到验证,有效保障了大促的稳定性质量。

覆盖应用:淘宝、千牛、优酷、钉钉、淘宝直播、咸鱼等

接入指标:核心业务指标 200+

提前预警:有效提前预警线上问题 20+

报警示例

Holmes

实践案例1:

A客户端新版本放量期间, 由于客户端请求传参问题导致服务端返回大量空返回错误,Holmes 进行了有效检测到异常,相关同学收到报警及时中止放量并修复问题。此时传统规则监控因未达到阈值没有预警。

Holmes

实践案例2:

在618大促压测期间,由于B业务订单数据量持续下降(缓慢下跌),Holmes检测到持续异常信息,预测数据下跌风险,早于传统规则监控90分钟提前报警,有效避免了线上故障。

Holmes

算法检测效果

Holmes

未来展望

=======


Holmes异常检测平台是淘系技术质量团队打造,在智能化测试领域的一次实践,未来我们希望利用AI算法实现业务全方位智能化监控和问题定位。覆盖更多的数据类型、打造通用的算法模型、更优越的算法指标。同时我们也在全链路监控排查、智能舆情处理等多方面进行探索,期待后续跟大家分享。


Holmes

关注「阿里巴巴技术质量」阅读更多

本文分享自微信公众号 - 阿里巴巴技术质量(AlibabaTechQA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这