一个Bug损失200亿!如何搭建业务异常检测系统?( 四 )


DataPipeline 的系统架构
若构建一套企业级业务监控和异常检测系统应该具备哪些组成部分?下面为 DataPipeline 的一些思路 。

一个Bug损失200亿!如何搭建业务异常检测系统?

文章插图
 
①产品功能组成
从产品功能角度而言,该系统可以接入企业的各种业务系统(左边),包括核心业务系统和各种已有系统,诸如数据分析,监控系统等 。
挑战是如何将多源异构的数据以一致的方式接入,且同时可以处理流式和批式数据 。
DataPipeline 已有的数据融合产品可以很好地实现这点 。如果企业自己搭建,则需要根据具体情况确定实现方式 。
另外,针对中间的系统内核,我们将其设计成了一个跟业务完全解耦的黑盒 。
右边则是用户交互 UI,包括两部分:
  • 告警系统,可根据企业的报警需要接到企业交流 App 如钉钉、邮件,电话等 。
  • 监控看板,可以看到监控的指标数据,搜索不同指标和多维度展示 。
另外,还可看到指标异常的汇总展示,根因展示等 。从看板上用户可以根据展示出的异常进行反馈,表明这是正确的异常还是误报,另外还可调整指标异常检测的敏感度 。这些反馈和调整会返回到系统中 。
②核心系统架构
核心系统主要分为线上处理和线下模型训练两部分 。线上部分处理实时的数据指标最新数据流,从模型存储数据库中读入模型并存于内存中,对数据流中每一个数据指标进行实时的阈值计算、异常检测和打分 。
之后多个数据指标的异常检测结果会被汇总到一个关联性处理器,进行异常的关联,最后将关联好的异常指标组汇总,生成并触发告警 。
在处理实时指标数据时,处理器会将最新的指标数据和检测出的异常分别写入数据库为线下训练做准备 。
线下部分会定时从数据指标的历史数据库中读取数据并进行线下的模型训练,这其中便包括上面提到的算法自动选择,周期性学习等 。也会定期利用用户返回的反馈对模型进行评估,计算出误报漏报率等 。
总结
业务异常的不及时解决会给企业带来巨大的经济损失 。
相对于传统的人工生成报表和人工阈值的监控方法,基于人工智能的业务异常检测系统可以更自动化,更全面地监控业务各项指标并给出准确率更高,更有帮助性的报警和业务洞见 。
而搭建这样一套系统面临业务数据表现形式多样,告警过多准确率低下等挑战 。
伴随着企业级人工智能业务异常检测系统的出现,企业可以更高效、及时全面的掌控业务,从而实现业务和经济效益的提升 。




推荐阅读