文档章节

Druid监控

CurtainRight
 CurtainRight
发布于 2016/12/09 15:51
字数 524
阅读 44
收藏 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 作者温绍锦访谈实录

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

虫虫
2012/08/22
15.8K
29
Spring Boot之使用阿里巴巴Druid数据库连接池(数据源)

版权声明:本文为博主原创文章,转载需注明出处。 https://blog.csdn.net/jay100500/article/details/81270298 作者:谭东 Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目。Dru...

谭东jay
07/29
0
0
druid多实例的情况下如何做集中监控

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

明舞
2015/08/25
796
1
阿里Druid数据连接池在SSM框架中的配置使用

Druid数据连接池简介 首先可以参考阿里在GitHub给出的一些说明: Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。 性能好,同时自带监控页面,可以实时监控应用的...

似水的流年
2017/12/31
0
0
阿里巴巴开源项目 Druid 负责人温少访谈

Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、...

donkeyMeng
2016/12/17
246
0

没有更多内容

加载失败,请刷新页面

加载更多

《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
41分钟前
1
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
57分钟前
2
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0
HashTable和Vector为什么逐渐被废弃

HashTable,不允许键值为null,还一个就是put方法使用sychronized方法进行线程同步,单线程无需同步,多线程可用concurren包的类型。 如编程思想里面说的作为工具类,封闭性做的不好没有一个...

noob_chr
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部