KPI异常检测

KPI异常检测指的是通过算法分析KPI的时间序列数据,判断其是否出现异常行为。

描述

背景介绍

随着互联网,特别是移动互联网的高速发展,web服务已经深入到社会的各个领域,人们使用互联网搜索,购物,付款,娱乐等等。因此,保障web服务的稳定已经变的越来越重要。

Web服务的稳定性主要靠运维来保障,运维人员通过监控各种各样的关键性能指标(KPI)来判断Web服务是否稳定,因为KPI如果发生异常,往往意味着与其相关的应用发生了问题。图1中展示了一个KPI异常的例子——某互联网公司的网页访问量数据发生了异常,其中红色圆圈标示了KPI发生的异常。

图1 异常KPI示例

这些KPI大致分为两种类型:服务KPI和机器KPI。服务KPI是指能够反映Web服务的规模、质量的性能指标,例如,网页响应时间,网页访问量,连接错误数量等。机器KPI是指能够反映机器(服务器、路由器、交换机)健康状态的性能指标,例如,CPU使用率,内存使用率,磁盘IO,网卡吞吐率等。

KPI异常检测指的是通过算法分析KPI的时间序列数据,判断其是否出现异常行为。这里的难点主要有:

1 异常发生的频率很低。在实际的运维场景中,业务系统很少发生异常,因此可供分析的异常数据很少。

2 异常种类的多样性。因为实际的业务系统很复杂,并且会不断更新升级,所以故障的类型多种多样,从而导致了异常种类的多样性。

3 KPI的多样性。KPI有表现为周期型的,有表现为稳定型的,有表现为不稳定的,持续波动型,如图2,3,4所示。

图2 周期型KPI

图3 稳定型KPI

图4 不稳定型KPI

正是因为这些难点,导致现有的异常检测算法的准确率(precision)和召回率(recall)都不高,存在大量的误报和漏报。这不仅增加了运维人员的工作量,而且导致运维人员无法及时准确地发现异常的KPI。

因此,为了提高异常检测算法的准确率和召回率,我们收集了来自众多互联网公司的真实场景的KPI数据,经过脱敏处理后提供出来,希望更多的学术界和工业界的人员参与进来,一起提高异常检测算法的性能。


数据集举例

为了训练异常检测算法,我们提供的训练KPI数据如表1所示,包括四列:KPI ID,时间戳(timestamp),KPI在该时刻对应的数值(value),以及该时刻是否异常(label)。
KPI ID Timestamp Value Label
0 1503831000 10.8 0
0 1503831060 12.3 1
... ... ... ...
表1 训练KPI数据案例
为了评估异常检测算法,我们提供的测试KPI数据如表2所示,包括两列:KPI ID,时间戳(timestamp),以及KPI在该时刻对应的数值(value)。
KPI ID Timestamp Value
0 1503831000 10.8
0 1503834020 22.2
... ... ...
表2 测试KPI数据案例

评估指标

异常检测的性能评价指标:

设计的异常检测算法需要在每一个时间点进行一次异常检测。根据异常检测结果,输出判定结果1(异常)或0(正常)。在此基础上,本挑战赛计算异常检测结果的 F-score。

通常情况下,运维人员往往只关心异常检测算法能否检测到某一连续异常区间,而非检测到该异常区间的每一个异常点。因此,我们以如下方式计算TP,TN,FP,FN :

1 对于一段标记的连续异常区间:

如果异常检测算法在该连续异常区间开始后的 T 个时间点内检测到了该连续异常区间,本挑战赛认为此异常检测算法成功地检测到了整段连续异常区间,因此该异常区间内的每一个异常点都算作一次true positive(TP);否则,该连续异常区间内的每一个异常点都算作一次false negative(FN)。

2 对于一个没有标记异常的时间点:

如果异常检测算法输出了异常,计做一次false positive (FP);否则,计做一次true negative (TN)。

精度(precision),召回率(recall)和 F-score计算方式:

精度 = TP / (TP + FP)

召回率 = TP / (TP + FN)

F-score = (2*精度*召回率)/(精度+召回率)

请注意,计算精度、召回率和F-score所使用的TP, FP, FN为整个数据集的TP, FP, FN。

评价指标示例:

如图所示,当 T=2 时,上图中异常检测算法成功地检测到了第一个连续异常区间,而未能成功检测到第二个连续异常区间。因此,本挑战赛认为算法的准确率为 0.6,召回率为 0.5。

关联数据集

数据集名称 简单描述 发布者 上传时间 操作
KPI异常检测预赛训练集 momeng 2017-11-16 15:33:03 登录后,可下载
还可以输入200个字符 答案提交成功 loadding 回答

总共3条评论

排序
  • 所有
  • 2017-12-04 16:36:41

    鼓励一下,希望以后多多更新干货,嘿嘿~

  • devops2017-12-14 10:12:01

    问个问题,这里是 清华 netman 实验室的 裴丹 负责的吗? 

  • icbc_xl2017-12-25 22:23:42

    个人感觉,单纯业务量(或者访问流入量)很难刻画系统异常,能否增加交易状态维度,从多维角度分析异常特征

免费声明

本网站所提供的信息,只供参考之用。

本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误对用户或任何其他人士负任何直接或间接的责任。

在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接或项目所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿(包括但不限于收益、预期利润的损失或失去的业务、未实现预期的节省)。

本网站所提供的信息,若在任何司法管辖地区供任何人士使用或分发给任何人士时会违反该司法管辖地区的法律或条例的规定或会导致本网站或其第三方代理人受限于该司法管辖地区内的任何监管规定时,则该等信息不宜在该司法管辖地区供该等任何人士使用或分发给该等任何人士。用户须自行保证不会受限于任何限制或禁止用户使用或分发本网站所提供信息的当地的规定。

本网站图片,文字之类版权声明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

所有材料、信息、产品及服务的按“原样”提供,无任何担保责任。在法律许可的最大范围内,明确声称其不承诺任何明示、默示和法定的

注册

请输入正确的邮件格式

密码长度6-20位

两次输入密码不匹配,请重新输入

昵称已被占用,请重新输入

点击[注册],即代表你同意 《iOps注册协议》
注册

注册协议

【首部及导言】

为有效利用QQ号码资源,维护用户合法权益,特制订《QQ号码规则》(以下简称“本规则”)。请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款,以及开通或使用某项服务的单独协议,并选择接受或不接受。限制、免责条款可能以加粗形式提示您注意。

除非您已阅读并接受本规则所有条款,否则您无权申请或使用QQ号码。您申请或使用QQ号码的行为即视为您已阅读并同意受本规则的约束

一、【规则的范围】

1.1 本规则是腾讯制定的关于获取和使用QQ号码的相关规则。本规则适用于腾讯提供的需要注册或使用QQ号码的全部软件和服务。

1.2 本规则属于腾讯的业务规则,是《腾讯服务协议》不可分割的组成部分。

1.3 您通过QQ号码使用腾讯的软件和服务时,须同时遵守各项服务的单独协议。

二、【QQ号码的性质】

QQ号码是腾讯创设的用于识别用户身份的数字标识。QQ号码的所有权属于腾讯。

三、【QQ号码的获取】