❶ druid sql监控 怎么看
首先是过滤器filter的配置,在web.xml中添加如下配置,如图:
选项配置结束之后,就是我们监控界面的路径配置了,配置如下图
Druid已经配置好,接着在浏览器中访问,如图所以:
输入访问地址后,进入Druid监控页面,如图所示:
此时,在浏览器中输入需要监控系统页面网址,然后点击上个画面中的“SQL监控”即可,此时就可以看到每个SQL语句所用的时间,如下图所示:
❷ 如何使用Druid监控sql
Druild包获取
Maven工程中添加druid依赖包:
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.26</version>
</dependency>
Druid使用
替换C3P0连接池
Web工程原先采用C3P0连接池的配置:
<!-- 配置数据源-C3PO -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="autoCommitOnClose" value="false" />
<property name="maxIdleTime" value="${cpool.maxIdleTime}" />
<property name="checkoutTimeout" value="${cpool.checkoutTimeout}" />
<property name="initialPoolSize" value="${cpool.minPoolSize}" />
<property name="minPoolSize" value="${cpool.minPoolSize}" />
<property name="maxPoolSize" value="${cpool.maxPoolSize}" />
<property name="acquireIncrement" value="${cpool.acquireIncrement}" />
<property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}" />
</bean>
改成Druid连接池DruidDataSource
<!-- 配置数据源-druid -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="20" />
<property name="initialSize" value="1" />
<property name="maxWait" value="60000" />
<property name="minIdle" value="1" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="poolPreparedStatements" value="true" />
<property name="maxOpenPreparedStatements" value="20" />
</bean>
StatViewServlet配置
Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。
这个StatViewServlet的用途包括:
提供监控信息展示的html页面
提供监控信息的JSON API
StatViewServlet是一个标准的javax.servlet.http.HttpServlet,需要配置在你web应用中的WEB-INF/web.xml中。
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
配置完之后,可以通过如下格式的地址在浏览器访问查看。
http:/<host>:<port>/<context>/druid
Druid连接池及监控在Spring配置如下:
[html] view plain
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<!-- 基本属性 url、user、password -->
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_user}" />
<property name="password" value="${jdbc_password}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="20" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="" value="20" />
<!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
<property name="filters" value="stat" />
</bean>
2. 只要配置initialSize,maxActive就可以,目前这样的配置已经能够使用连接池,加入其实配置性能不好,官方文档里也不没加其它属性,连接池jar包免费下载。
❹ 为什么说Druid是“最好的数据库连接池”
1、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
2、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
3、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
4、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。
❺ 怎么样配置druid将sql语句及参数记录到日志文件中去
<!--每隔5分钟将监控日志输出到日志文件中,单位是毫秒。-->
<propertyname="timeBetweenLogStatsMillis"value="300000"和陪/>
<!--监控数据库-->
<propertyname="proxyFilters">
<list>
<refbean="stat-filter"/>
<refbean="wall-filter"/>
<refbean="log-filter"/>
</list>
锋棚键</property><beanid="stat-filter"class="com.alibaba.druid.filter.stat.StatFilter">
<propertyname="slowSqlMillis"value="3000"/>
<propertyname="logSlowSql"value="true"/>
<propertyname="mergeSql"value="true"/>
</bean>
<beanid="log-filter"银巧class="com.alibaba.druid.filter.logging.Log4jFilter">
<!--<propertyname="resultSetLogEnabled"value="false"/>-->
<!--<propertyname=""value="true"/>-->
</bean>
<beanid="wall-filter"class="com.alibaba.druid.wall.WallFilter">
<propertyname="dbType"value="oracle"/>
<propertyname="config"ref="wall-filter-config"/>
</bean>
<beanid="wall-filter-config"class="com.alibaba.druid.wall.WallConfig"init-method="init">
<propertyname="dir"value="META-INF/druid/wall/oracle"/>
</bean>
❻ 怎样配置Druid监控并实现权限控制
这里只讲了如何通过IP来控制访问,没有讲如何通过用户名和密码来控制访问。经测试可以通过以下方式实现使用固定的用户名和密码来控制访问。
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>迅御洞com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<param-name>loginUsername</param-name>
<param-value>admin</param-value>
</init-param>
<拆闹init-param>
<param-name>loginPassword</param-name>
<param-value>admin<亩枯/param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
❼ Druid的内置监控servlet的数据源应该怎么配置
ervlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<param-name>resetEnable</param-name>
<param-value>true<枝昌毕/猛芹param-value>
</init-param>
</servlet>
<servlet-mapping>
<迅州servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid
❽ druid SQL监控里执行时间、最慢、事务中等是什么意思,执行时间分布的[0,4,0,0,0,0,0,0]等又是什么意思
执行时间是指对应的SQL语句执行的总时间
最慢是指执行最慢的一次时间
事务中不清楚,但应该和数据是否完成归档校验有关
执行时间分布的具体的意思可以在“数据源”页面中看到,各系统根据配置的不同有不同的定义,例如我这边的定义就是:
事务运行时间分布,分布区间为[0-10 ms, 10-100 ms, 100-1 s, 1-10 s, 10-100 s, >100 s]
❾ 怎样将druid监控的数据存到数据库中+方便继续监控
Druid 0.1.18之后版本都发布到maven中央仓库中,所以你只需要在项目的pom.xml中加上dependency就可以了。
例如:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid-version}</version> </dependency>5. 怎么打开Druid的监控统计功能
Druid的监控统计功能是通过filter-chain扩展实现,如果你要打开监控统计功能,配置StatFilter。