目前监控系统大致可以分为系统监控,应用监控,业务监控
业务监控需要实时交易数据的支撑,对数据实时性要求较高
最初版实时监控系统模型:
实时数据不断的录入到ES(Elastic Search)当中,然后通过定时任务按照设定好的频率查询ES的数据并进行聚合给出各类指标的健康状况
经过一段时间的运行,伴随着监控的指标越来越多,查询越来越频繁,没次增加指标都需要去新增对应的定时任务去执行相应的逻辑,这种方式的弊端越来越显著,主要表现在:
1、对ES的依赖很强,数据量越来越大,可能会超出ES的承载能力
2、不灵活,每次有新指标或是有指标的改动都需要去改代码,发布
3、实时性不够,数据是先要落到ES,然后才能通过定时任务去查询
基于以上问题,我们进行了改造
我们希望数据监控与数据分析进行分离,数据分析所依赖的条件具有不确定性,需要根据外部输入实时获取数据,这张就需要保存明细数据以达到动态聚合
而数据监控是根据确定好的一些指标对数据进行实时的聚合,监测交易的健康度,所以我们分成了两块
1、数据查询分析展示通过ES做查询,取消定时任务的执行
2、运用storm,flink等流数据处理方式处理实时告警,这里我们选用了比较成熟的storm技术
数据路由
Storm拓扑