0

0

微软AIOps工作的种种细节揭秘

WBOY

WBOY

发布时间:2024-01-24 23:15:14

|

1132人浏览过

|

来源于Linux就该这么学

转载

看看微软aiops工作是怎样的?

介绍

动测量,这些数据主要分为时序数据和事件数据两大类。时序数据指的是实值-时间序列(通常有固定的时间间隔),例如CPU使用率等;而事件数据指的是记录了特定事件发生的序列,例如内存溢出事件等。为了保证产品的服务质量、减少服务宕机时间,从而避免更大的经济损失,对关键的服务事件的诊断显得尤为重要。实际的运维工作中,对服务事件进行诊断时,运维人员可以通过分析与服务事件相关的时序数据,来对事件发生的原因进行分析。虽然这个相关关系不能完全准确的反映真实的因果关系,但是仍然可以为诊断提供一些很好的线索和启示。

那么问题来了,如何自动的判断事件和时序数据的关联关系呢?

问题

本文中,作者将事件(E)和时序(S)数据相关关系问题转化为两样本问题(two-sample problem),并使用邻近算法(nearest neighbor method)判断是否相关。主要回答了三个问题:A.E和S之间是否存在相关关系?B.若存在相关关系,E和S的时间先后顺序是什么?E先发生,还是S先发生?C.E和S的单调关系。假设S(或者E)先发生,S的增加还是降低导致的E发生?如图,事件为程序A和B的运行,时序数据为CPU使用率。可以发现,事件(程序A的运行)与时序数据(CPU使用率)存在相关关系,并且是程序A运行后CPU使用率发生升高的变化。

看看微软AIOps工作是怎样的?

方法

文章的算法架构主要分为三部分,来分别解决相关性、时间先后顺序和单调性三个问题。接下来将对这三个部分进行详细介绍。

看看微软AIOps工作是怎样的?

相关性

文章将相关性的判断转化为两样本问题,两样本假设检验的核心是判断两个样本是否来自相同的分布。首先选取事件发生前(或者后)对应的N段长为k的时序样本数据,用A1表示。样本组A2则是在时间序列上随机选取一系列长度为k的样本数据。样本集为A1并上A2。如果E和S相关,则A1和A2的分布不同,否则分布相同。怎样来判断A1和A2的分布是否相同?我们看下面这个例子:

看看微软AIOps工作是怎样的?

Gaga
Gaga

曹越团队开发的AI视频生成工具

下载

上图中样本0-4来自样本组A1,5-9属于样本组A2,使用DTW算法来计算两个样本之间的距离(DTW算法可以很好的适应序列数据的伸缩和位移)。某个属于样本组Ai(i=1或2)的样本X,对于X的r个最近邻居样本,与X属于相同样本组的个数越多则意味着样本组A1和A2分布更不同,即E和S越相关。例如,取邻居个数r=2,样本7的两个最近邻居分别是来自两个不同样本组的3和5,但是样本5的两个最近邻居是来自相同样本组A2的7和8。文章使用置信系数(Confident coefficient)来判断“假设检验H1”(两个分布不相同,即E和S相关)的可信度,置信系数越大,H1越可信。算法的两个关键参数:最近邻居个数r和时间序列长度k,邻居个数为样本个数的自然对数,时序数据的自相关函数曲线的第一个峰值为序列长度。

时间先后顺序

选取事件发生前后的序列与随机选取的时间序列求相关性,结果为Dr和Df。如果Dr为True,Df为False,代表E的发生先于S的发生(E -> S)。如果Dr为False,Df为True,或Dr为True,Df为True,代表S的发生先于E的发生(S -> E)。如下图例子,事件CPU Intensive Program –> 时序数据CPU Usage,时序数据CPU Usage -> 事件SQL Query Alert。

看看微软AIOps工作是怎样的?

单调关系

单调性由事件发生前后时间序列的变化来判断,如果事件发生后的时间序列比之前的序列取值要大,单调性为增加,否则为降低。如下图所示事件loading Data Task导致了Memory Usage的增加,事件Program Quit导致了Memory Usage的降低。

看看微软AIOps工作是怎样的?

实验结果

文章通过使用微软的系统监控数据和客服团队的数据对算法性能进行验证,数据分别是24个 S(内存、CPU和DISK数据)和52个 E (特定任务的执行),7 个S(HTTP状态码)和57个 E (服务主题),评价标准为F-score。结果表明DTW距离比其他的距离(L1和L2)整体表现更好,算法整体比两个baseline算法(皮尔森相关和J-Measure)表现要好。

看看微软AIOps工作是怎样的?

结论

文章介绍了一套全新的无监督的方法研究事件和时序数据的关系,回答了三个问题:E和S是否相关?E和S发生的先后顺序?以及单调关系是什么?相比较现在很多的相关关系研究,主要是事件之间的关联关系和时序数据之间的关联关系,本文则侧重事件和时序数据间的关系,是第一个回答了事件和时序数据间上述三个问题的工作。

事件诊断一直是运维领域一个很重要的工作,事件和时序数据的相关性不仅可以为事件诊断提供很好的启发,而且在帮助进行根因分析等都能提供很好的线索。作者在微软的内部数据集上对算法做了验证,并取得了很好的效果,这对于学术和工业届都有很高的价值。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

686

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

325

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

348

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1137

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

359

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

737

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

577

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

420

2024.04.29

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

41

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.7万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号