文档章节

Druid监控

CurtainRight
 CurtainRight
发布于 2016/12/09 15:51
字数 524
阅读 31
收藏 0

web.xml

配置web应用的监控

<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>druid</param-value>
	</init-param>
	 <init-param>
	   	  <!-- 密码 -->
	    	 <param-name>loginPassword</param-name>
	    	 <param-value>druid</param-value>
	 </init-param>
	 <init-param>
	   	  <!-- 密码 -->
	    	 <param-name>loginPassword</param-name>
	    	 <param-value>druid</param-value>
	  </init-param>
	  <init-param>
	      	<!-- 白名单ip -->
		<param-name>allow</param-name>
		<param-value>127.0.0.1</param-value>
	 </init-param>
<init-param>
  <!-- 清空计数 -->
         <param-name>resetEnable</param-name>
         <param-value>false</param-value>
        </init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>druidStatView</servlet-name>
		<url-pattern>/druid/*</url-pattern>
	</servlet-mapping>
<filter>
 <filter-name>DruidWebStatFilter</filter-name>
 <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
 <init-param>
 <!--过滤不监控的url类型-->
        <param-name>exclusions</param-name>
        <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
 </init-param>
 <init-param>
    <!-- url可以查看sql -->
    	<param-name>profileEnable</param-name>
    	<param-value>true</param-value>
 </init-param>
 <init-param>
        <param-name>principalCookieName</param-name>
        <!-- 对应cookie name -->
        <param-value>USER_COOKIE</param-value>
 </init-param>
 <init-param>
    <!-- 对应于Session name -->
        <param-name>principalSessionName</param-name>
        <param-value>USER_SESSION</param-value>
 </init-param>
 <init-param>
<!--监控Session数-->
<param-name>sessionStatMaxCount</param-name> 
<param-value>1000</param-value>
</init-param>
<init-param>
<!--Session状态-->
<param-name>sessionStatEnable</param-name> 
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
 <filter-name>DruidWebStatFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

spring配置文件

配置Spring-jdbc监控

<!-- Spring-jdbc的信息 -->
	<bean id="druid-stat-interceptor"
		class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
	</bean>

	<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
		scope="prototype">
		<property name="patterns">
			<list>
<!--拦截哪些类的方法-->
				<value>com.hollycrm..*Service*.*</value>
				<value>com.hollycrm..*dao*.*</value>
			</list>
		</property>
	</bean>
<!--proxy-target-class="true"加上这个,采用基于类代理方式-->
	<aop:config proxy-target-class="true">
		<aop:advisor advice-ref="druid-stat-interceptor"
			pointcut-ref="druid-stat-pointcut" />
	</aop:config>

注意:

<property name="connectionProperties" value="druid.stat.slowSqlMillis=5000;druid.stat.mergeSql=true"/>
druid.stat.slowSqlMillis=5000:设置慢sql的时间
druid.stat.mergeSql=true:合并sql
eg:
当你程序中存在没有参数化的sql执行时,sql统计的效果会不好。比如:
  1. select * from t where id = 1  
  2. select * from t where id = 2  
  3. select * from t where id = 3  

在统计中,显示为3条sql,这不是我们希望要的效果。StatFilter提供合并的功能,能够将这3个SQL合并为如下的SQL
select * from t where id = ?
<property name="filters" value="stat,log4j,mergeStat,wall" />
stat:sql
log4j:日志
mergeStat:合并sql
wall:sql白名单
白名单:
可能 会导致某些sql不能执行,因为默认是不启动的。在workflow中添加备注的sql,无法执行。报sql注入。

参考文档:

http://blog.csdn.net/dengtaowei/article/details/45698367

参考文档:

https://github.com/alibaba/druid/wiki

http://blog.csdn.net/xiaoyu411502/article/details/51392237

效果:

Sql监控(sql执行的情况)

URI监控(每一个请求的情况)

Spring与jdbc交互监控(service/dao的方法中jdbc情况)

数据源监控

© 著作权归作者所有

共有 人打赏支持
CurtainRight
粉丝 6
博文 172
码字总数 61177
作品 0
武汉
程序员
使用Druid监控SQL执行状态

本文使用Druid的连接池替换掉原来的C3P0连接池,然后配置Druid的相关属性,完成对Spring web工程的JDBC监控。 其实,我采用Druid替换其它连接池,最关键的一个理由是Druid有对SQL执行的监控统...

王孟君
2016/11/15
3.1K
8
【开源访谈】Druid 作者温绍锦访谈实录

关于开源访谈 开源访谈是开源中国推出的一系列针对国内优秀开源软件作者的访谈,以文字的方式记录并传播。我们希望开源访谈能全面的展现国内开源软件、开源软件作者的现状,着实推动国内开源...

虫虫
2012/08/22
14.5K
29
druid多实例的情况下如何做集中监控

都知道druid是为监控而生的数据源,目前项目采用druid作为数据源,单个节点的监控的确很强大,但是目前遇到一个情况。一个接口服务。采用的是spring+mybatis+druid。 在上层部署了大概6个实例...

明舞
2015/08/25
355
0
Druid 发布 0.2.6 版本 增强内置监控功能

Druid 0.2.6已经发布。这个版本最大的增强是内置监控界面,支持web-spring-sql关联监控,引入bootstrap重写了内置监控界面。 内置监控功能演示: 1) springside4 mini-web http://110.76.43...

wenshao
2012/09/03
1K
5
Druid使用配置初步理解

Druid是什么? Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。 ...

chenhuaming
2016/10/08
157
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

谷歌 Fuchsia 上手体验,将取代Android/win10

在手机市场领域,Google表现很抢眼,毫无疑问,Android 至今在移动操作系统的市场份额占据绝对领先地位,但是 Android 仍然存在不少问题,碎片化问题严重,在平板以及大屏幕设备上表现糟糕,...

linux-tao
19分钟前
1
0
List、Array与ArrayList

数组在内存中是连续存储的,所以它的索引速度很快,而且赋值和修改元素也非常快,比如: string[] s=new string[3];//赋值 s[0]="a"; s[1]="b"; s[2]="c";//修改 s[1]="b1"; 但是数组...

shimmerkaiye
22分钟前
0
0
Linux 的Lnmp环境下为mysql添加环境变量

一.问题 在Linux 安装完Lnmp 环境后 , 连接Mysql 告诉没有这条命令 mysql -uroot -p 命令失效 因为是源码安装的,所以会出现这样的的原因 。集成环境是不会出现的。 其实很简单,只需要给m...

15834278076
24分钟前
3
0
apolloxlua include函数

include函数不是单独使用的函数, 他并不是标准库的一部分, 你可以使用include函数将某个后缀为 .aop的文档包含到你的文档流中。 因为include是单独处理流, 所以不会在主处理流程中有所表示...

钟元OSS
28分钟前
0
0
【转载分享】做一名较真的工程师

近些年与我共事过的同事,一定知道我至今仍有一个较真的性格。我会:指出同事所写代码的不当命名问题(并帮助改进);指出同事所写文档中的逻辑混乱问题(并辅以修订);指出同事所写PPT中乱...

HellerZhang
29分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部