天天看點

工具優化(2) -- druid配置WebStatFilter完成網絡url統計

druid我們都很熟悉,是一款非常好用的資料連接配接池,但是很多開發者不知, druid除了資料連接配接池,還內建了對站點的URL進行統計的功能,下面就詳細的為大家講解一下如何配置druid的url統計。

WebStatFilter用于采集web-jdbc關聯監控的資料

監控攔截器

web.xml配置

<filter>
  <filter-name>DruidWebStatFilter</filter-name>
  <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
  <init-param>
    <param-name>exclusions</param-name>
    <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*,/download/*</param-value>
  </init-param>
  <init-param>
    <param-name>sessionStatMaxCount</param-name>
    <param-value>2000</param-value>
  </init-param>
  <init-param>
    <param-name>sessionStatEnable</param-name>
    <param-value>true</param-value>
  </init-param>
  <init-param>
    <param-name>principalSessionName</param-name>
    <param-value>session_user_key</param-value>
  </init-param>
  <init-param>
    <param-name>profileEnable</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>DruidWebStatFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
           

配置詳解

exlusions配置。用于排除一些不必要的url,比如.js,/jslib/等等。配置在init-param中

<init-param>
    <param-name>exclusions</param-name>
    <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*,/download/*</param-value>
</init-param>
           

sessionStatMaxCount配置。預設sessionStatMaxCount是1000個。你可以按需要進行配置

<init-param>
    <param-name>sessionStatMaxCount</param-name>
    <param-value></param-value>
</init-param>
           

sessionStatEnable配置。你可以關閉session統計功能

<init-param>
    <param-name>sessionStatEnable</param-name>
    <param-value>true</param-value>
</init-param>
           

principalSessionName配置。你可以配置principalSessionName,使得druid能夠知道目前的session的使用者是誰

<init-param>
    <param-name>principalSessionName</param-name>
    <param-value>session_user_key</param-value>
</init-param>
           

根據需要,把其中的session_user_key修改為你user資訊儲存在session中的sessionName。

注意:如果你session中儲存的是非string類型的對象,需要重載toString方法

principalCookieName配置。如果你的user資訊儲存在cookie中,你可以配置principalCookieName,使得druid知道目前的user是誰

<init-param>  
  <param-name>principalCookieName</param-name>  
  <param-value>cookie_user_key</param-value>  
</init-param>  
           

根據需要,把其中的cookie_user_key修改為你user資訊儲存在cookie中的cookieName

profileEnable配置。druid 0.2.7版本開始支援profile,配置profileEnable能夠監控單個url調用的sql清單

<init-param>
    <param-name>profileEnable</param-name>
    <param-value>true</param-value>
</init-param>
           

配置界面顯示

web.xml配置

<!-- 配置 Druid 監控資訊顯示頁面 -->
<servlet>
  <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>
  <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>
</servlet>
<servlet-mapping>
    <servlet-name>DruidStatView</servlet-name>
    <url-pattern>/druid/*</url-pattern>
</servlet-mapping>
           

配置詳解

這一塊主要是配置監控界面的servlet,詳細的解釋,配置中已注釋就不做過多的闡述了

測試

上面兩項測試完畢之後,浏覽器輸入網址:

http://ip:port/projectName/druid/index.html

将ip、port和projectName換成實際的配置,通路成功!

另外也許你會問,我沒有添加監控的界面,界面是從哪裡來的,打開druid的jar你就會恍然大悟

工具優化(2) -- druid配置WebStatFilter完成網絡url統計
注意:配置前一定要保證下載下傳好druid的jar包,下載下傳位址:

http://code.alibabatech.com/mvn/releases/com/alibaba/druid/

并配置好資料連接配接池。

繼續閱讀