前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯百万指标的无阈值检测算法即将开源

腾讯百万指标的无阈值检测算法即将开源

作者头像
织云平台团队
修改2018-10-30 10:32:16
3.1K1
修改2018-10-30 10:32:16
举报

智能运维时代来临,AIOps 来了,什么?!你还在为不懂算法为发愁?

别焦虑,为了让广大运维同仁能够尽快步入 AIOps 的技术殿堂,降低实施 AIOps 的技术门槛,腾讯织云团队即将开源运维学件!( ps: 学件由南京大学周志华教授提出,运维学件由腾讯 SNG 赵建春先生提出并率先开源,云计算开源产业联盟和高效运维社区荣誉共同推广。)

经过腾讯 SNG 运维团队悉心打磨,使用超百万的监控指标训练,腾讯无阈值检测算法即将在 10 月的 OSCAR 开源先锋日对外开源。有了运维学件的支持,即使没有算法专家,也能实施 AIOps!

以下内容由赵建春先生及 SNG 运维团队提供:

大家开始接触 AIOps 后,会遇到很多问题,例如,运维团队缺乏算法专家、希望学习他人的算法模型和原理,以及,提供算法和使用算法的一方,因为数据安全的考虑,都不愿意提供数据。这样不利于运维同行之间对 AIOps 算法的学习和交流。

对于传统的运维工具开发而言,我们可以通过提供 API 的方式,把功能的逻辑开放给对方,从而实现技术分享。

但是在  AIOps 领域的算法和模型,其实是一组带有记忆能力的 API,这个记忆能力是对数据有依赖的,从不同的数据样本中统计学习而来。同时在运维环境里不断地持续积累数据,可能会有新的案例产生。

因此,这个模型时刻地在变,它非常的复杂,它可能是决策树的决策路径、回归参数或神经网络的网络结构及路径权重。

因为它的各种的算法,决策算的神经网络的结构,以及他的权重,或者是回归参数相当复杂,这个不是人编写出来的,所以就难理解。

从 API 到学件

所以,在 AIOps 时代,我们可以来一个从 API 到学件的转变,“学件”概念是南京大学的周志华老师提出来的,他是国内 AI 领域的泰斗级的人物,他提出学件是通过数据可以不断地学习,随着数据的不断地加入会更好,另外它的算法是公开的,你也可以了解它是怎么实现的。

你也可以把学件拿来用,通过基于腾讯监控数据训练好模型,导入自己的监控数据来实施 AIOps。这样操作没有涉及腾讯数据的泄漏或其他安全问题。

你可以用自己的数据重新去训练改进适应自己环境的模型,所以学件是可演进的。算法也是公开可了解的,拿来可以重用,来解决运维场景实施 AIOps 的难题。

前一段时间和业界同仁一起编写了 AIOps 白皮书的一个能力框架。

我们大体的想法就是说最底层就是各种的机器学习算法,这个算法和运维的实际环境场景结合起来,通过训练一些单个的 AIOps 学件,单点场景也可以解决问题,之后把单点学件串联起来组成 AIOps 的串联应用场景,最终就可以形成一个智能调度的模型,去解决运维环节的成本、质量、效率等运维关心的问题。

织云团队跟高效运维社区做了一些实践和理论方面的探索和尝试,今天也希望通过这几个单点的串联质量效率这些纬度跟大家分享一下。

关于学件的实践案例分享

1)单点案例:成本 - 内存存储智能降冷

单点第一个是成本,就是内存存储智能降冷,因为我们是社交网络业务,用户规模大,又有大量的访问,业务开发团队喜欢用内存型的 KV 存储。

上线的时候,请求量可能很高,但是随着时间的推移,业务的数据量不断地增长,访问密度反而在下降,对运营成本造成很大的压力。

那大家会想到降冷,但是降冷之前大家都熟悉就是利用数据的最晚使用时间按规则处理,但是这个你想想其实只有一个指标,这个数据的最后使用时间,作为特征去分析,其实远远不够的。

我们对每一类数据做了非常多的特征的抽样提取,有几十个特征,如周期的热度变化这些,就是如图上这些,还有一些没有写出来的。

然后,运维人员根据的经验,因为他们有丰富的手工处理的经验沉淀,哪些数据条目是可以降冷的,把这些数据标注之后,用逻辑回归和随机森林,去学习和训练,其实就是做分类,机器学习绝大部分都是做分类。

做一个分类之后,上面是 LR 和逻辑的回归,下面是随机森林。那在随机森林,在30 棵树的时候效果最好,因为随机森林本来就是一个 bagging 的方法,对稳定性效果有提高。

最终的效果就是说,我们把数据进行了降冷下沉,把接近 90% 的数据,从 SSD 下沉到硬盘上,同时业务的访问量并没有下降,SSD 数据没有造成访问压力,可以看到下沉和下降是非常精准的。

而且这里面的数据延迟和成功率几乎没有变化,其实之前的同事通过人工的设置做下沉的设置,其实效率是非常的低,这个模块提升了 8 到 10 倍的下沉效率,这第一个案例是关于成本的。

2)单点案例:质量 — 统一监控去阈值

质量,大家可以看到统一监控去阈值是很有意义的一件事情。监控有两种情况,一种是成功率的监控,它应该是一个直线,正常应该在 100% 左右,但它会往下掉。

第二个就是类似于一个累计性的曲线,或者 CPU 的曲线,这个曲线监控其实是非常的千变万化的。

之前我们可能是通过设置阈值的方法,最大值最小值,阈值设置这样的方式,去设置告警。

这个曲线一直在变化,最大值和最小值也一直在变化,然后他的形式也非常的多变,也很难去设置这样的东西。

我们做了两种方式。第一个是成功率的方式,我们使用了 3sigma 方式,来自于工业界,是来控制产品的次品率的,如果是 3sigma 是 99.7% 是正品,其实用这个方式我们统计出来的告警里面,超过正常值范围里面的多少多我们认为是多少个次品,把它找出来。

第二步用孤立森林,就是长的相似的一类的东西,是比较难分类的,要通过很多步才可以去到叶子节点上,所以看到这个 Gap,这一块就是说在比较浅的叶子的节点,就是异常的节点。

我们通过第一步统计的方式,第二步的无监督方式找到一场。目前最后一步我们还是加了一些规则,让告警更可靠。这个规则其实就是看到我在什么时候告警和恢复,这样一个逻辑既然是一个规则,在未来我们会进一步做一个 AI 化的改造。

那对于这个曲线型的监控,目前我们就是因为曲线不是属于正态分布的,一个曲线是一个曲线,所以极差很大。我们把它做了一个分段的 3sigma,就是一个小时一个段,对过去 7 天进行一个采样。

还有曲线我们可以用多项式去拟合这个曲线,我们用 3sigma、统计方法、多项式拟合几种方法作为第一步,就是相当于推荐系统里的多路召回。

第二步依然就是孤立的森林,和前面讲的原理一致。

第三步就是有监督的人工标注,就是图上画圈的有些告警有一些不应该告警的标注,标注训练集后去训练自动地分类。

为了获得更多的样本库,同事们用这个叫相关系数的协方差算法,寻找更多的样本库。大家可以关注一下,就是说去找一些相似的曲线,对训练不好的模型,就再进行打包去训练。

总的方式,通过三级的过滤找到异常的告警。

我们有十万多台设备,超过 120 万个监控视图,其实之前我们 70% 以上都没有设告警,因为很难每个都设一个最高值最低值,所以说目前就把这些模块都纳入到这个监控里面去,百分之百覆盖,这是一个监控区域值,去设置的一个案例。

重磅:运维学件即将开源

10月20日、腾讯织云基于多年运维内部场景整合的 AIOps 利器 Metis 开源项目即将正式发布。

Metis 这个名字取自希腊神话中的智慧女神墨提斯(Metis),它是一系列智能运维的应用实践集合。腾讯织云 Metis 团队通过开源项目 Metis 打造智能运维的学件平台。

本次率先开源的时间序列异常检测学件,是从无监督+有监督学习的角度来解决时序数据的智能检测问题。时间序列异常检测学件是通过学习织云海量的时间序列样本,训练出一套智能检测模型,然后利用无监督和监督算法对时间序列进行智能检测。

通过 Metis, 运维人员无需再去设置监控阈值,通过算法输出模型,对异常情况能做智能判断。这种无阈值检测方式能够减少传统检测方式的阈值维护成本,更高效的保障规模不断壮大的业务。

同时,Metis 经过织云海量业务样本训练而成的模型多元化,复用性高。不仅如此,Metis 还能根据个性业务场景生成新的测试模型,满足多种业务需求。

Metis 将在 10月 20 举行的【OSCAR 开源先锋日】发布,大会现场将分享更多织云 Metis 的技术优势,应用场景,以及未来规划。期待您的到来。

不仅如此

如果您也热爱开源

如果您想跟随开源先锋企业的步伐

如果您想了解 AIOps、微服务等最新开源项目

请不要错过以下社区福利

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯织云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1)单点案例:成本 - 内存存储智能降冷
  • 2)单点案例:质量 — 统一监控去阈值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档