智能监控在袋鼠云中的应用

简介

传统监控是通过对监控项设置一个固定值(阈值),当监控项指标超过这个阈值时就通知人们关注这个指标项。传统监控一般适用于一定范围波动的业务指标,比如磁盘的使用率,CPU的使用率等,当指标超过一定值时就意味着系统可能出现故障,但是遇到波动范围比较大的场景时,比如某银行的交易09:00~18:00之间交易量大,在其他时间交易量可能为0,工作日交易一般,非工作日交易剧增,又比如某网站的点击量在白天很大,在深夜点击量可能为0,如果使用传统监控对上面的场景进行指标监控,往往不能很好的反映系统和业务的状态,产生很多误报的情况,增加人工成本,而且甚至会让人们对告警产生麻木,不信任感。所以我们加入了机器学习算法,对过去的监控指标进行训练,对当前值的异常判断不再仅仅取决于一个固定的阈值,而是同期数据,历史周期性数据进行了参考,通过这是动态阈值的方法对异常数据进行检测。

技术架构

_
模型训练器:云日志以固定频率采集的业务指标形成时间序列,输送到模型训练器中,模型训练器有一系列的数学模型组成(可动态添加),每个模型都得到预测值,观察值与预测值之前存在的误差,对比误差我们将得到一个与业务最匹配的数学模型。利用这个训练出的最佳模型,输入未来时间点,得到预测值,绘制未来业务图。
异常检测器:训练的数学模型预测的值与实际的观察值存在一定的误差,这个残差系列输送到异常检测器中,异常检测器也是由一系列的数学模型组成(可动态添加),模型检查的误差点与业务的异常点最匹配的模型将作为异常检测模型,将后续检测出的异常点发送给预警系统。

时间序列建模

采集的时间序列数据并非是散乱,毫无规律的一组数据,它往往伴随业务的变化而变化,有的具有很强的周期性规则,有的具有相对平滑的趋势,我们需要利用对应的数学模型来拟合,一下是我们常用的几种数学模型。

模型 描述
OlympicModel 季节模型,其中下一个点是先前n个时期的平滑平均值
MovingAverageModel 移动平均模型,下一个点在给定时间段的平均值
MultipleLinearRegressionModel 多元线性回归模型,使用一个或者多个变量对x和y的关系进行建模
PolynomialRegressionModel 多项式回归模型,高纬度数据建模
exponentialSmoothingModel 指数平滑模型,分一次,二次,三次指数平滑,对周期,趋势,季节性特征数据
weightedMovingAverageModel 权重移动平均模型,下一个点是给定时间段的加权平均值

对不同特征的时间序列,不同的数学模型所计算出的误差也截然不同,我们从以下列表的指标来衡量这些数学模型的匹配度。

指标 描述
Bias 误差的算术平均值
MAD 平均绝对偏差,也称为MAE
MAPE 平均绝对百分比误差
MSE 误差的均方
SAE 绝对错误的总和
ME 平均误差
MASE 平均绝对比例误差
MPE 平均百分比误差

在经过以上指标衡量预测模型的优劣后,我得到最契合业务的拟合曲线,得到最佳的训练模型。然后输入未来时间点得到那个时间点的预测值,然后绘制出预测曲线

异常检测

在预测出未来时间点的数据后,如何检测这个业务数据是否异常,我们也有对应的异常检测模型,如下表所示

模型 描述
cpModel 基于内核的波动点检测
DBScanModel 基于密度的聚类算法检测
kSigmaModel 经典的k-sigma模型,概率检测
extremeLowDensityModel 基于密度的异常检测,范围检测

将残差指标用以上模型计算之后,与过去的业务异常点进行对比,选择最接近的异常检测模型,作为后续的异常检测,当模型检测数数据异常时,即时发送预警给巡检员,防患于未来。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/669321

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。