作者简介
周伟 百度高级研发工程师
负责百度智能运维(Noah)监控报警系统、通告平台;在精准报警、精准通告、报警收敛、公/私有云监控等方向具有广泛的实践经验。
干货概览
监控报警是故障发现的重要一环,也是百度在AIOps的最早切入方向之一,目前百度AIOps在监控报警方面已经有两个场景取得突出效果:智能异常检测和智能报警合并。
如何支撑AIOps算法在监控报警系统的快速落地并产生业务价值,这对监控报警架构提出了很大的挑战!在上篇《AIOps对监控报警架构的挑战》文章中,我们介绍了监控报警系统在故障处理流程中的位置(故障发现和故障通告),并且分析了AIOps对监控报警架构的三个挑战。在本篇,我们将详细介绍应对这三个挑战的方案:
为了应对挑战一,我们研发了策略运行平台,让AIOps算法迭代找到飞一般的感觉。
为了应对挑战二,我们提出了基于状态机的事件管理引擎,让事件管理so easy。
为了应对挑战三,我们设计了灵活的报警合并方案,让值班工程师彻底跟报警风暴say bye bye。
下面我们来详细看下这三个方案的实现细节。
策略运行平台,让算法迭代飞起来
在上篇《AIOps对监控报警架构的挑战》文章中,我们提到异常判断在落地AIOps智能异常检测算法时,遇到的最大挑战是算法迭代周期长达一个月,费时费力,算法的迭代成本非常高。
为了能快速落地AIOps算法,并能产生好的效果,提高报警准确率,我们希望算法的迭代周期从月降低到天级别,为了达到这个目标,需要异常判断系统满足这些需求:
减少算法工程实现成本,弥合线下算法脚本和线上运行代码的鸿沟,从而能快速验证算法脚本的真实效果。
快速评估算法的稳定性、性能和资源消耗,尽早发现问题,不将问题带到线上,保证线上算法运行环境的稳定性。
分离算法代码和算法模型,支持算法模型的独立更新,加快算法模型的迭代速度。
基于这些需求,我们研发了策略运行平台。策略运行平台共分为三个环境:
离线环境:离线环境提供了策略开发框架,策略人员基于策略框架的标准Lib接口开发算法。同时策略开发框架还支持算法的离线回溯、时序数据可视化等功能。
在线环境:在线环境提供了一个稳定可靠的算法运行环境。在线环境会为每个任务启动一个子进程,在子进程中启动策略运行时环境,运行环境会提供跟策略开发框架一致的Lib接口,这样就可以将离线开发的算法脚本直接放到线上运行。
近线环境:近线环境和在线环境其实是同一套架构,只是目的不同。近线环境会引入线上的小流量数据提前进行算法验证,保证线上和线下的运行效果一致;另外ÿ