Druid監控

web.xmlcss

配置web應用的監控git

<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配置文件github

配置Spring-jdbc監控web

<!-- 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>

注意:spring

<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注入。

參考文檔:sql

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

參考文檔:session

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

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

效果:

Sql監控(sql執行的狀況)

URI監控(每個請求的狀況)

Spring與jdbc交互監控(service/dao的方法中jdbc狀況)

數據源監控

相關文章
相關標籤/搜索