系统监控一直是项目完整性的一个要素,“不让没有监控的系统上线”,这条准则也逐渐得到越来越多的人的认可。如果一个系统监控缺失,我们就无法知道系统的运行状态,以及业务的各个方面的情况,甚至系统出现宕机或者重大故障也不得而知,以至于造成重大损失。
爱奇艺乐道中台是由爱奇艺内容中台团队建设的集视频、音频、字幕、图片等内容的全流程生产、发布及运营的中台服务。随着业务发展及微服务化的逐渐深入,系统项目越来越多,目前已有微服务100+,需要维护内容也越来越多,链路越来越长,现有的监控手段已不能满足业务发展的需要,涌现出更多更迫切的监控需求,如:
1、高效及时的发现、定位系统异常问题
系统出现异常时需要立刻感知,在业务反馈之前发现问题,定位问题需要更加高效,可视化,不能仅去服务器查日志定位问题,这样通常需要花费很长时间才能定位原因,甚至如果日志过多还不能准确定位。
2、上线过程可监测,出现问题第一时间回滚
每次系统发布上线都是一次bug降生的窗口期,相当比例线上问题都是上线导致或者引入的,因为一个稳定的服务,你不去更新系统代码,正常情况下不会自发的产生问题。我们需要可监测的上线过程,及时修复问题。
3、全面准确的度量系统服务、接口、数据库等性能
我们需要更加全面和方便的监测整个系统对外提供的服务接口和系统依赖的外部服务接口性能,QPS、慢查询等其他性能指标,性能如果有潜在问题可能在关键时候,如流量突增,导致数据库连接池打满、长事务、拖垮整个网关等重大故障。
4、更加及时和稳定的监测服务健康情况
虽然目前部署的服务都是双份或者多备份部署,可用性有保证,但是还是往往会出现其中部分服务出现宕机等情况,我们需要第一时间感知到这种问题,并具有持续的稳定监测。
5、及时监测机器(容器)性能变化当系统遇到突发流量或者攻击等原因时很可能导致连接池打满、OOM,数据库打满,CPU、内存、磁盘打满等基础问题,这些都会导致重大事故,无法及时的监控到,就无法及时的处理,导致重大线上故障。
6、更加完善清晰的业务监控以上叙述了系统监控方面的迫切需求,在业务方面如果没有监控,如节目生产数量、成功率、时效等,那么整体业务运行情况对于维护者而言就是一个黑盒,这就会陷入一个被动局面,业务的发展是技术保障的目标,不知道目标发展情况,就会让许多工作失去意义。
在业务量较少,系统较少,微服务较少的时候,我们对于监控系统的需求越少,随着业务、系统爆炸性的发展就会维护起来越来越吃力,我们需要建立完备的监控体系去补齐这个短板,对各个服务、业务心中有数,为业务快速发展提供保障。