文档章节

Druid监控

CurtainRight
 CurtainRight
发布于 2016/12/09 15:51
字数 524
阅读 29
收藏 0
点赞 0
评论 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
博文 127
码字总数 59580
作品 0
武汉
程序员
【开源访谈】Druid 作者温绍锦访谈实录

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

虫虫 ⋅ 2012/08/22 ⋅ 29

druid多实例的情况下如何做集中监控

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

明舞 ⋅ 2015/08/25 ⋅ 0

使用Druid监控SQL执行状态

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

王孟君 ⋅ 2016/11/15 ⋅ 8

Druid 发布 0.2.6 版本 增强内置监控功能

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

wenshao ⋅ 2012/09/03 ⋅ 5

Druid使用配置初步理解

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

chenhuaming ⋅ 2016/10/08 ⋅ 0

Druid是什么和用StatViewServlet用于展示Druid的统计信息

Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser Druid可以做什么? 1) 可...

随智阔 ⋅ 2014/04/02 ⋅ 0

阿里巴巴数据库连接池Druid发布0.2.5版本

Druid是目前最好的JDBC数据库连接池,监控功能最完备,功能最强大,性能最快。 新功能介绍 0.2.5版本最重要的亮点是张永为增加了一个内置监控界面。 内置监控界面使用配置 修改web.xml,加入...

wenshao ⋅ 2012/08/02 ⋅ 10

阿里Druid数据连接池在SSM框架中的配置使用

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

似水的流年 ⋅ 2017/12/31 ⋅ 0

阿里巴巴开源项目 Druid 负责人温少访谈

挡住去路的,往往不是大树,而是小藤! 阿里巴巴开源项目 Druid 负责人温少访谈 本文是由转载而来. Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和 SQL解析 器组...

李永china ⋅ 2016/08/08 ⋅ 0

阿里巴巴开源项目 Druid 负责人温少访谈

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

donkeyMeng ⋅ 2016/12/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部