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


实验模块支持两种类型的流程模型:

  • 执行流程是一个异常检测流程 , 指定指标和检测时间段 , 得到检测时间段每个时序点的异常分值;
  • 训练流程是一个执行训练的流程模型 , 主要包括参数调优训练流程和机器学习模型训练流程 。

时序数据异常检测做到这种段位,还怕什么告警风暴文章插图
图18 流程编排示意图
使用算法进行流程编排如上图18所示 , 左侧菜单为算法组件 , 中间区域可对算法执行流程进行编排调整 , 右侧区域是具体算法的参数设置 。
3)离线训练和实时检测
在模型编排阶段 , 可编排执行流程和训练流程 , 执行流程主要用在指标实时异常检测过程 , 而训练流程主要用在离线模型训练和参数调优 。
执行流程由流程配置和异常分值配置构成 , 由实验模块的流程调度引擎负责执行调度 , 下图19展示了执行流程的详细构成 。
时序数据异常检测做到这种段位,还怕什么告警风暴文章插图
图19 执行流程组成和处理过程
流程调度引擎在对执行流程调度执行之前 , 会从流程的最深叶子节点的算法组件开始递归计算需要加载的时序数据集 , 根据流程中算法组件的参数配置 , 加载前置训练流程的训练结果 。 最后再对流程中的算法组件依次调度执行 , 得到检测时间段每个时序点的异常分值 。 最终实现后的执行流程编排如图18所示 。
训练流程由流程配置、训练算法、样本加载配置和训练频次等信息构成 , 由实验模块的流程调度引擎负责调度执行 , 下图20展示了训练流程的详细构成 。
训练流程主要分为两大类:
  • 参数调优训练是指为需要调优的参数设置参数值迭代范围或者枚举值 , 通过贝叶斯调优算法对参数进行调优 , 得到最优参数组合;
  • 机器学习模型训练则通过设计好特征工程 , 设置分类器和超参数范围后调优得到机器学习模型文件 。
训练流程执行训练的样本集来源于人工标注的样本或者基于自动样本构造功能生成的样本 。 训练流程编排具体过程和执行流程类似 , 不同的是训练流程可设置定时任务执行 , 训练的结果会存储供后续使用 。
时序数据异常检测做到这种段位,还怕什么告警风暴文章插图
图20 训练流程组成和处理过程
异常检测模型中会包含很多凭借经验设定的超参数 , 不同的指标可能需要设置不同的参数值 , 保证更高的精召率 。
而指标数据会随着时间发生变化 , 设置参数需要定期的训练和更新 , 在实验模块中可以为训练流程设置定时任务 , 实验模块会定时调度训练流程生成离线训练任务 , 训练任务执行完成可以看到训练结果和效果 。 下图21示例展示了一个参数调优训练流程的示例 。
时序数据异常检测做到这种段位,还怕什么告警风暴文章插图
图21 参数调优训练结果示例
4)模型案例和结果评估
根据在周期型指标上探索的结果 , 在Horae上编排分类模型训练流程 , 训练和测试所使用的样本数是28000个 , 其中用于训练的比例是75% , 用于验证的比例是25% 。
具体分类模型训练结果如下图22所示 , 在测试集上的准确率94% , 召回率89% 。
同时编排了与之对应的执行流程 , 它的检测流程除了异常分类 , 还主要包含了空值填充、预检测、特征提取、分类判断、低峰期判断、偏移波动判断等逻辑 , 该执行流程适用范围是周期型和稳定型指标 。
除此之外 , 还提供了流程调优能力 , 检测流程中的每个算法可以暴露其超参数 , 对于具体的指标 , 通过该指标的样本数据可以训练得到该流程下的一组较优超参数 , 从而提高该指标的异常检测的精召率 。
时序数据异常检测做到这种段位,还怕什么告警风暴文章插图
图22 异常分类模型训练结果
该异常检测流程应用到生产环境的指标后 , 具体检测效果相关案例如下图23所示 , 对于周期型指标 , 能及时准确地发现异常 , 对异常点进行反馈 , 准确率达到90%以上 。
除此之外 , 还对比了形变分析异常检测 , 对于生产环境中遇到的三个形变分析无法发现的4个案例 , 周期型指标异常检测流程能发现其中3个 , 表现优于形变分析 。
时序数据异常检测做到这种段位,还怕什么告警风暴文章插图
图23 周期型指标异常检测模型生产环境检测结果
四、总结与展望
时序数据异常检测作为AIOps中故障发现环节的核心 , 当前经过探索和实践 , 已经在周期型指标异常检测上取得了一定的成绩 , 并落地到Horae时序异常检测系统中 。