本文中,我将介绍利用Dynatrace AppMon监控JDBC Connection Pool的一些技巧,以便快速诊断JDBC Connection Pool是否存在泄露和监控JDBC Connection Pool的使用率。通过监控获取和归还Connection的JAVA方法的执行次数差异,来判断是否存在连接池泄露。对于连接池的使用率,我们可以间接的通过监控获取Connection的JAVA方法的执行时间,来判断连接池是否处于利用率饱和状态。
不同的JDBC Connection Pool使用的获取连接和归还连接的JAVA方法不一样,这里我们以Tomcat JDBC Pool为例来阐述监控设置。
Tomcat JDBC Pool获取Connection的方法:
org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection()
Tomcat JDBC Pool归还Connection的方法:
org.apache.tomcat.jdbc.pool.ConnectionPool.returnConnection(...)
首先,我们创建自定义感应器(custom sensor)来监控这两个方法:
在PurePath树中,我们就可以看到这些方法的调用情况,说明已经正常监控起来了:
接下来,我们创建两个测量(measure)来监控这两个方法的调用次数。获取Connection方法的测量,测量的