时序数据异常检测做到这种段位,还怕什么告警风暴( 六 )


  • 如果相似序列个数超出设定阈值 , 则认为当前波动为规律偏移波动 , 属于正常现象 。
  • 根据上述方法 , 提取到对应的相似序列如图16右边所示 , 其中红实线为基础序列 。
    时序数据异常检测做到这种段位,还怕什么告警风暴文章插图
    图16 规律波动偏移相似序列提取
    4、异常检测能力平台化
    为了把上述时序数据异常检测探索的结果进行落地 , 服务运维部与交易系统平台部设计和开发了时序数据异常检测系统Horae 。
    Horae致力于时间序列异常检测流程的编排与调优 , 处理对象是时序数据 , 输出是检测流程和检测结果 , 核心算法是异常检测算法、时间序列预测算法以及针对时间序列的特征提取算法 。
    除此之外 , Horae还会针对特殊的场景开发异常检测算法 。
    Horae核心能力是可根据提供的算法 , 编排不同的检测流程 , 对指标进行自动分类 , 并针对指标所属类型自动选择合适的检测流程 , 进行流程调优得到该指标下的最优参数 , 从而确保能适配指标并得到更高的精召率 , 为各个对时序数据异常检测有需求的团队提供高准确率的异常检测服务 。
    1)Horae系统架构设计
    Horae系统由四个模块组成:数据接入、实时检测、实验模块和算法模块 。
    用户通过数据接入模块注册需要监听时序数据的消息队列 , Horae系统将监听注册的Topic采集时序数据 , 并根据粒度(例如分钟、小时或天)更新每个时间序列、每个时序点都存储到时序数据库中 。 而实时检测模块对每个时序点执行异常检测 , 当检测到异常时 , 通过消息队列将异常信息传输给用户 。 下图17详细展示了Horae系统的整体架构图 。
    • 数据接入:用户可以通过创建数据源用于数据上报 , 数据源可以包含一个或多个指标 , 指标更新频率最小为一分钟 。 不同数据源中指标的时序数据相互隔离 , 时序数据更新到使用Elasticsearch改造后的时序数据库中;
    • 实时检测:采集到实时的时序数据后 , 会根据指标绑定的执行流程立即进行异常检测 , 如果没有训练调优 , 会先执行训练调优以保证更佳的精召率 。 实时检测的结果会通过消息队列通知到用户 , 用户根据异常检测的结果进行进一步处理判断是否需要发出告警;
    • 实验模块:该模块主要功能是样本管理、算法注册、流程编排、模型训练和评估、模型发布 。 该模块提供样本管理功能 , 可对样本进行标注和存储 。
    • 对于已经实现的算法 , 可以注册到系统中 , 供流程编排使用;
    • 通过算法编排得到的流程 , 可以用在模型训练或者异常检测中;
    • 训练流程会使用到标注好的样本数据调用算法离线服务进行离线训练并存储模型;对于已经编排好的检测流程 , 可以对指标进行模拟观察检测异常检测效果 , 或者离线回归判断检测流程在该指标上的具体精召率数据 。
    • 算法模块:算法模块提供了所有在实验模块注册的异常检测算法的具体实现 , 算法模块既可以执行单个算法 , 也可以接受多个算法编排的流程进行执行 。
    • 当前支持的算法大类主要有预处理算法(异常值去除、空值填充、降维、归一化等) , 时序特征算法(统计类特征、拟合特征、分类特征等) , 机器学习类算法(RF、SVM、XGBoost、GRU、LSTM、CNN、聚类算法等) , 检测类算法(孤立森林、LOF、SVM、3Sigma、四分位、IQR等) , 预测类算法(Ewma、Linear Weighted MA、Holt-Winters、STL、SAIMAX、Prophet等) , 自定义算法(形变分析、同环比、波动比等) 。

    时序数据异常检测做到这种段位,还怕什么告警风暴文章插图
    图17 Horae时序数据异常检测系统架构图
    2)算法注册和模型编排
    算法模型是对算法的抽象 , 通过唯一字符串标识算法模型 , 注册算法时需要指定算法的类型、接口、参数、返回值和处理单个时序点所需要加载的时序数据配置 。
    成功注册的算法模型根据算法类型的不同 , 会生成用于模型编排的算法组件或对异常检测模型进行训练的组件 。
    用于模型编排的算法组件主要包括:预处理算法、时序特征算法、评估算法、预测算法、分类算法、异常检测算法等 , 用于模型训练的算法分为两大类:参数调优和机器学习模型训练 。
    注册后的算法模型通常不会直接用于异常检测 , 会对算法模型进行编排后得到一个流程模型 , 流程模型可以用于执行异常检测或者执行训练 。