引言
在传统的监控中,我们有阈值告警、斜率告警、变化率告警等,每种告警方式都可以解决某些问题,但不可避免的在实践过程中会遇到种种问题。为了更简洁、更准确的进行告警,AIOPS 领域中的异常检测算法就如火如荼的发展了。我们在上一篇 运维里的人工智能 介绍了如何对成千上万的时间序列 KPI 做异常检测,但异常检测适用场景是异常已经发生,需要及时准确的进行告警。实际上,在一些业务场景里,我们需要提前知道何时会达到预警值而进行告警,如磁盘使用率未来多久会达到预警值,即如果超过阈值,则会需要触发告警来让人工处理以降低磁盘容量。
本文结合业界常用的时间序列预测算法和网易游戏实际业务中的实践,阐述如何进行时间序列预测。
时间序列预测算法概述
现在业界时间序列预测算法大致可以分为三类:
传统时间序列模型,如指数平滑、ARIMA 等。一般来说,这类模型适合做短期预测,长期预测效果往往不佳,同时需要数据保持一定的平稳性。
神经网络模型,如 GRU、LSTM 等。神经网络模型,需要足够多的数据,训练运行时间较长,实时计算的压力较大,准确度较高。
开源组件预测算法,如 facebook 开源的 Prophet、谷歌开源的 AdaNet 等。如今,各公司都开始向外输出预测能力服务,组件会集成很多的功能,像周期识别、变点识别等,相比普通的预测模型准确率也相应更高,但涉及到的参数也多。
预测实际是一个复杂的问题,对历史数据依赖很高,一个模型算法适用所有时序数据是基本不可能的,所以各类算法都各显神通在各种不同的场景中发挥其重大作用。
时序预测在网易游戏智能监控实践
在监控中,时序预测的应用场景很多,如磁盘使用率的预测、网络流量预测、游戏在线人数预测等。不同的场景下对预测的需求不一样,短期预测长期预测和预测效率,甚至预测准确率的要求都不