1)监控中间件,自然是各家自带的监控工具或者监控模块效果最好。采集项也都是针对自己的产品定制的。当然,市面也会有针对某个中间件的监控产品。
例如WAS监控有自带模块“性能监控基础结构(PMI)”,也有PerformanceTuningToolkit用于后期展示。
tomcat监控工具有市面上的probe等
2)但如果某个中间件没有自带监控工具并且市面上也没有它的监控工具,可以采用JVM的监控(jvisualvm)来监控一些最基本的信息。
3)在没有定制监控工具的情况下,有时候觉得JVM的监控信息太少,不足以分析一些性能问题、数据关联,可以采用Pinpoint、Glowroot、dynatrace等工具。这类工具采用插针的方式,在java代码中插针,可以在吞吐量不是特别巨大的时候,现在每一步的执行干什么、响应时间、数据关联等等
收起监控分几个层级
1、主机层级 CPU、IO、内存,像Zabbix什么的都有非常成熟的基于模板的监控。
2、JVM层级的 线程、中间件JDBC、GC,这种主要是通过Java自带的JMX以及一些中间件的JMX接口查询。可以通过Jconsole远程查看,开源的话,Zabbix也可以收集的到,不过要自制模板
3、业务链层级的,追踪到每一个业务链的,商业市场上有用过的是Dynatrace,不过DT原厂对于非“客户和合作伙伴”的人体验不大好,不提供账号注册讨论学习。非商业的pingpoint吧 感觉还行,对于tomecat还算友好,目前没找到使用pingpoint支持商业中间件 was weblogic的方式,最近正在测。