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

DataPipeline Head of AI 王睿在51CTO大咖来了公开课上作了题为《业务异常实时自动化检测 — 基于人工智能的系统实战》的分享,本文根据分享内容整理而成 。

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

文章插图
图片来自 Pexels
王睿,之前在 Facebook/Instagram 担任 AI 技术负责人,现在 DataPipeline 任 Head of AI,负责研发企业级业务异常检测产品,旨在帮助企业一站式解决业务自动化监控和异常检测问题 。
分享主要从以下四方面跟大家分享构建该产品的思路和实战:
  • 为什么需要人工智能业务异常检测系统
  • 搭建该系统的挑战和设计理念
  • DataPipeline 的算法实现思路
  • DataPipeline 的系统架构
为什么需要人工智能业务异常检测系统
企业会因为业务异常无法得到及时解决而遭受较大的损失,比如某知名互联网企业,将原价为 50 元的优惠券以 18 元卖出,导致用户在短时间内大量疯抢,损失惨重 。
同样,在金融、零售、电商领域因为 IT 系统的 Bug 或人工原因导致的业务异常也给企业造成了不可估量的经济损失 。
然而,在业务异常出现时,企业往往在几天甚至几个星期之后才会发现 。以某公司为例,其主营业务为线上借贷,有次放款率突然增加,此时距离出现问题已经过去十几个小时 。
后果是将钱款借给了许多不具备借贷资质的人,导致回款率和营收大幅下降 。
一个Bug损失200亿!如何搭建业务异常检测系统?

文章插图
 
为此,随着企业业务的持续高速增长以及信息化的全面普及,业务人员需要对业务变化有一个全面实时地掌控 。
这时,IT 运维人员会关心服务器和网络的运行;产品负责人会关心用户访问,点击率和用户体验等;业务负责人则关心业务的核心 KPI,如销售额 。
这些指标犹如一个人的心跳、血压、体温,反映企业业务的健康状况 。
如何能快速准确地从业务指标中识别异常,发现问题根因,并及时解决对企业而言就显得尤为重要 。
目前针对这块,不同企业采取的方法各异 。传统的业务监控方法往往是手工生成报表每天查看,对于比较重要且实时性要求较高的指标,会人工设定阈值,当指标跨过阈值时报警 。
对于已知周期性的指标一般会用类似同比环比的方法 。随着企业业务量和业务种类的不断提升,人工的监控也随之增多 。
而这种基于人工的方法则会显示出几大不足:
①大量业务指标没有被实时监控 。以电商为例,若只监控总销售额,采用人工方法很容易实现 。
但是,一旦某些地区或品类的销售额出现异常,只看总销售额指标则很难发现问题 。
例如某零售企业,其酸奶的销售额在某地区较之前有所下降,原因是酸奶的库存出现了周转问题 。
由于一直售卖过期酸奶,导致接到大量用户举报 。针对该情况,若只监控总销售额很难发现问题,这时需要监控品类和地区两个维度更细粒度的指标 。
而监控多个维度的指标,指标监控的数量会成倍增长,显然是人工无法胜任的 。
一个Bug损失200亿!如何搭建业务异常检测系统?

文章插图
 
②告警洪流 。当业务出现问题时,往往报警的接收人员会收到大量告警,使得他们被告警洪流淹没,很难精准定位问题根因 。
除了告警的准确率低以外,还由于业务指标之间具有很强的相关性,主要体现在两个方面:
首先是指标之间的链路关系 。比如在电商零售领域,当服务器错误增高时导致用户访问下降,从而导致下游的订单减少 。
另外是指标的多维度特性,例如当订单下降时,往往多个产品线,多个地区订单量同时下降 。
因此当业务出现问题时,往往是多个相关的指标一起告警,形成告警洪流 。
③误报漏报 。作为业务负责人,既不想在业务出现问题的最后一刻才知道,也不想在凌晨三点被一个假警报叫醒 。
而多次的误报会导致“狼来了”的效应,当真正的问题出现时,告警却往往容易被接收人员忽略掉 。
④人工维护成本 。随着业务的不断变化,大量的告警阈值和规则需要人工调整,而这显然跟不上业务的变化速度和监控指标不断增多的节奏 。
因此我们需要一套自动化的智能业务监控和异常检测系统,通过对指标变化规律的学习,自动掌握指标数据正常和异常的表现模式,从而全面,实时地监控企业业务不同层面,不同维度的各项指标 。


推荐阅读