加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2020-03-02 08:16:59 所属栏目:编程 来源:站长网
导读:副标题#e# 【51CTO.com原创稿件】DataPipeline Head of AI 王睿在51CTO大咖来了公开课上作了题为《业务异常实时自动化检测 基于人工智能的系统实战》的分享,本文根据分享内容整理而成。 图片来自 Pexels 王睿,之前在 Facebook/Instagram 担任 AI 技术负责

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

因此,在 DataPipeline,我们采用单变量分析对每个指标进行异常检测,然后利用大规模聚类算法将相关度较高的指标进行聚类(如上图)。

这样每个指标的机器学习和相关性学习两部分可以各自规模化,使得整个系统计算效率更高。

而聚类算法通过几类特征来进行计算:

异常表现的相似度:简言之,如果两个指标多次、同时出现异常,则认为两者更相关。

我们可以生成一个异常表现的特征向量,若在某个时间点该指标表现正常便设置为 0,若表现异常则设置为异常的打分(算法根据异常的严重程度自动打分)。

统计模型的相似度:即指标的数值是否有相似的模式。其中计算两个时序数据数值相似度最常见的算法是 Pearson Correlation Coefficient。

元数据相似度和人工反馈:DataPipeline 还根据元数据的拓扑关系来判断相关性。

比如同一个指标的多个维度生成的多个子指标会被认为更相关。此外,用户也可自己输入一些信息告诉系统哪些指标更相关。

DataPipeline 的系统架构

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

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

①产品功能组成

从产品功能角度而言,该系统可以接入企业的各种业务系统(左边),包括核心业务系统和各种已有系统,诸如数据分析,监控系统等。

挑战是如何将多源异构的数据以一致的方式接入,且同时可以处理流式和批式数据。

DataPipeline 已有的数据融合产品可以很好地实现这点。如果企业自己搭建,则需要根据具体情况确定实现方式。

另外,针对中间的系统内核,我们将其设计成了一个跟业务完全解耦的黑盒。

右边则是用户交互 UI,包括两部分:

告警系统,可根据企业的报警需要接到企业交流 App 如钉钉、邮件,电话等。

监控看板,可以看到监控的指标数据,搜索不同指标和多维度展示。

另外,还可看到指标异常的汇总展示,根因展示等。从看板上用户可以根据展示出的异常进行反馈,表明这是正确的异常还是误报,另外还可调整指标异常检测的敏感度。这些反馈和调整会返回到系统中。

②核心系统架构

核心系统主要分为线上处理和线下模型训练两部分。线上部分处理实时的数据指标最新数据流,从模型存储数据库中读入模型并存于内存中,对数据流中每一个数据指标进行实时的阈值计算、异常检测和打分。

之后多个数据指标的异常检测结果会被汇总到一个关联性处理器,进行异常的关联,最后将关联好的异常指标组汇总,生成并触发告警。

在处理实时指标数据时,处理器会将最新的指标数据和检测出的异常分别写入数据库为线下训练做准备。

线下部分会定时从数据指标的历史数据库中读取数据并进行线下的模型训练,这其中便包括上面提到的算法自动选择,周期性学习等。也会定期利用用户返回的反馈对模型进行评估,计算出误报漏报率等。

总结

业务异常的不及时解决会给企业带来巨大的经济损失。

相对于传统的人工生成报表和人工阈值的监控方法,基于人工智能的业务异常检测系统可以更自动化,更全面地监控业务各项指标并给出准确率更高,更有帮助性的报警和业务洞见。

而搭建这样一套系统面临业务数据表现形式多样,告警过多准确率低下等挑战。

伴随着企业级人工智能业务异常检测系统的出现,企业可以更高效、及时全面的掌控业务,从而实现业务和经济效益的提升。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读