数据源
数据源菜单显示数据库连接池的基本信息,如连接地址、连接类型、最大连接数、最小连接数、初始连接等信息。
可通过逻辑连接打开次数、逻辑连接关闭次数来判断系统中是否存在有连接未关闭的情况(正常情况下打开次数和关闭次数应该一致)
SQL监控
SQL监控显示系统已执行过的每条SQL语句的执行情况。通过执行数、执行时间、最慢时间、事务中、错误数、最大并发、执行时间分布等统计维度来展现。 需要说明的有:
执行数:本条sql语句已执行的次数
执行时间:本条sql语句累计执行时间(单位:毫秒) 最慢:本条sql语句执行最慢一次的耗时(单位:毫秒) 执行时间分布【- - - - - - - -】:这8个 – 分别代表8个耗时区间的次数,从左至右依次是: 0-1毫秒次数、1-10毫秒次数、10-100毫秒次数、100-1000毫秒次数、1-10秒次数、10-100秒次数、100-1000秒次数、大于1000秒次数。 如下图中的这一条数据:
可以发现:执行时间上本条sql语句有10次是在1-10毫秒内就执行完成,其他耗时区间的执行次数都为0.
执行+RS时分布与此同理。通过耗时区间,可以发现SQL执行的效率情况,可以反映出数据库或应用是否稳定。
SQL防火墙
SQL防火墙分防御统计、表访问统计、函数调用统计、SQL防御统计-白名单、SQL防御统计-黑名单这几项。
其中若是涉嫌SQL注入的SQL语句将被拦截,出现在SQL防御统计-黑名单中。详细的SQL防御的wallfilte配置请移步:
https://github.com/alibaba/druid/wiki/é?????-wallfilter
WEB应用
Web应用主要统计本应用的并发、请求、事务提交、事务回滚等信息,另外统计了本应用在各操作系统上、各浏览器上的访问次数。
URI监控
URI监控统计了应用中各url的访问次数、请求时间、并发数等信息。
Session监控
Session监控显示应用中session的请求时间、请求次数、最大并发等数据。
Spring监控
Spring监控显示针对配置中需要监控的各方法的执行数、执行时间、最大并发、读取行数等信息。
Druid数据库连接池如何解决连接泄露
对于项目中可能存在的连接泄露(连接未关闭)的问,Druid提供了如下办法:
1. 可通过“数据源”监控中的“活跃连接堆栈查看 ” 这里显示的是未关闭的数据库连接堆栈
信息,可通过此堆栈信息来分析未关闭的数据库连接所在位置,从而手动关闭,解决问题。
点击[View JSON API]可查看堆栈信息,如下图:
可以看到目前并未有发现未关闭连接的情况。
再看下图:
发现堆栈中已有信息,可从中分析出是test.jsp中存在未关闭的连接,手动关闭即可。
2. 另外Druid提供了另一种解决办法,可在applicationContext.xml的数据库连接池
(dataSource)配置中加入如下配置:
加入该配置后,若有连接30分钟仍未关闭,则Druid会强制收回此连接,关闭该连接。 3. 若想了解更多Druid关于解决连接泄露的问题请移步:
https://github.com/alibaba/druid/wiki/è????¥?3????????μ?