阿里妹导读:全链路监控从业务的视角出发,监控整个业务流程的健康状况,无需多个系统切换,直观看到全局和上下游,方便快速发现、定位问题。今天,我们一起来看看阿里基础设施技术团队在这方面的实践经验。
背景
近年来,随着阿里新业务、新技术的快速发展,传统的业务总量“监控大盘”已经越来越不能满足监控需求,主要表现在以下几个方面:
缺乏全局视角:“监控大盘”主要反映的是单个业务或应用的运行状态,缺少全局的业务视角能反应整个“业务域”的上下游整体的运行情况。比如交易系统成功率下跌,想看看是不是优惠出问题了,但是不知道“优惠”的业务监控在哪里,只能依赖"优惠"的同学去排查,钉钉电话沟通,大家一起拼凑信息,上下游协调成本很高。
监控标准不统一:一直以来“业务监控”都是自定义的,依赖开发人员的个人经验,往往系统、业务监控混在一起,没有标准,业务之间不能比较;各系统监控能力参差不齐,很容易出现业务链路中的监控断层;业务监控缺少一套行之有效的方法论,新人或者新业务对于业务要怎么监控,不知道如何下手、不知道自己配的监控是否覆盖全面,只有等到故障发生以后才去补监控。
缺少业务视角:随着阿里业务飞速发展,特别是“大中台”的建设,使得传统的“总量”监控已经不能满足需求,比如一个“交易”中台业务就会有数十个“业务方”调用,单纯的总量监控会把小调用量的业务淹没,必须按每个业务方的“业务身份”进行监控。对于像“盒马”、“淘鲜达”这样的新零售业务,这样的问题更加突出,一家门店出现交易异常对于“交易总量”来说是微不足道的,但是对这件门店的客户体验来说是灾难性的。
监控配置成本高:“业务监控”一直都是由“开发人员”纯手工打造,需要经过日志埋点、监控配置、报警阈值设置,整个过程费时费力,缺乏自动化、智能化监控的手段,这也是造成各系统监控能力参差不齐的重要原因,一些新业务因为无力投入大量精力配置监控,导致业务监控能力缺失。
全景式监控
业务全链路监控从业务的视角出发,监控整个业务流程的健康状况,无需多个系统切换,直观看到全局和上下游,方便快速发现、定位问题。
建立了完整的“业务监控模型”,为业务建立起一个从“宏观”到“微观”的全景式业务监控体系,结束了业务监控没有标准,只能纯手工打造的历史。业务监控模型主要包括3部分:
业务域:一个完整的业务或产品称为“业务域”,如电商的“交易域”、“营销域”、“支付域”等。
业务活动:业务域中的的核心业务用例叫做“业务活动”,如交易域的“下单确认”、“创建订单”等,业务活动是整个监控模型的核心,每个业务活动都会有标准的【黄金指标】来反应自身的健康状况,业务活动之间建立上下游关系就形成了业务链路。
系统服务:业务活动中的依赖的关键方法称作“系统服务”,如“下单确认”包含:查询会员、查询商品、查询优惠等关键方法,每个系统服务也通过【黄金指标】来表示其健康状况。
监控流程
以“监控模型”为基础,我们总结出了一套如何做好“业务监控”的方法论,并将其沉淀到产品中。