GGL2HBase工具被我部署在多台机器上,通过并发方式提高抓取监控数据的性能,同时每个工具还启动了一个web服务,查询操作被我封装成了RESTful方式提供给web端实时展示。加入监控的gmond master列表则做成了动态监测,这样保证在增加新机器的监控数据时,导入服务也不会停止,防止了丢数据的可能性。整个过程经过整合优化后,原先需要半个小时以上的简单查询,被我压缩到了毫秒级别。而即使是复杂的运算查询,也控制在了半秒之内(这在最初那个模式中,由于多次查询耗时太长,根本不可能去做)。这个系统持续不断的已经运行超过一年,而我们即使是今天刚做的测试也可以与一年前的数据进行对比,方便历次多条基线的参照,以及快速出测试报告。这套系统完成后,加上DST的自动化功能,促使之前需要至少耗时一个多月的集成测试周期被压缩到了一周之内。
如下图所示,展现十多个指标的数据图(只是作为一个例子),这些数据从10多TB的数据中捞出来只需要不到半秒的时间。
该工具除了速度快之外,还充分利用了gmond汇报数据的特点,完整记录了所有指标的单位、分组、描述等信息,以及所有机器的机器名、IP地址、包含的指标等信息,与前端mysql数据库搭配后,完成了DST对集群信息的整体掌控。
此外,由于是收集了所有被监控节点的所有监控指标数据,因此当我们想查看以前被忽略的某个指标的历史数据时,也完全不用担心找不到这些数据。HBase的海量存储能力保证了再多的数据也能放得下,当前20台规模的HBase集群已经存储了10多个TB的监控数据,而对于整个HBase系统来说,即使存放10年的数据量也是绰绰有余的。
发展计划
当前GGL2HBase的发展方向是有能力兼容接入更多种类的监控数据,完成监控体系的一体化。同时,配合DST前端,更好的展示这些监控数据。并利用HBase集群的能力,将更多的计算过程放到后端集群中去做,减少前端的计算压力。这些都是任重而道远的工作,但是做这些事情本身也是对个人技术能力的考验和提升,而解决问题的过程,更是难得的乐趣。
原文转自:http://www.ltesting.net/deltestingadmindd/