druid監控一些配置,以及自定義過濾URI監控

druid監控一些配置,以及自定義過濾URI監控

一,使用druid監控

1.1 依賴

druid連接池相信大家並不陌生了。但是有一個功能我也是最近才知道,就是druid的sql監控以及一些請求uri監控,這些能方便我們去對系統和sql進行調優。
廢話不多說,只要加入druid依賴:(下面都是以springboot爲基礎)

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
     <version>${druid-version}</version>
</dependency>

不是springboot的話就引入這個:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>${druid-version}</version>
</dependency>

1.2 配置

重點在於這個.直接上一個模板配置:

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
      username: root
      password: 123
      initial-size: 1
      max-active: 10
      min-idle: 1
      max-wait: 60000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
#--------下面是druid監控配置-----------
      stat-view-servlet:
      	# 打開監控
        enabled: true
        # 這個監控servlet匹配的路徑,也就是localhost:8080/druid打開這個頁面
        url-pattern: /druid/*
        # 監控頁面的賬戶密碼
#        login-username: admin
#        login-password: admin
      filter:
        stat:
          log-slow-sql: true
          #超過1秒視爲慢sql
          slow-sql-millis: 1000
          merge-sql: false
        wall:
          config:
            multi-statement-allow: true
       # 需要加上過濾器
      filters: stat,wall,slf4j

順便配置打印sql的日誌配置:

logging:
  level:
   	root: info
    #druid sql打印 ,過濾器在com.alibaba.druid.filter.logging.LogFilter
    druid.sql.DataSource: debug
    druid.sql.Connection: debug
    druid.sql.Statement: debug
    druid.sql.ResultSet: debug

打開

http://localhost:端口/contextPath/druid

具體效果如下
在這裏插入圖片描述
可以看到sql信息,數據源連接池信息,請求uri信息等

二、自定義過濾URI監控

打開uri監控,我們發現很多都是靜態資源請求和druid監控頁面的請求,這些我們並不需要看到,需要進行過濾
在這裏插入圖片描述
通過源碼我們可以看到
在這裏插入圖片描述
在這裏插入圖片描述
所以我們需要配置FilterConfig類的initParameter來過濾

代碼如下:

 @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean beanFilter = new FilterRegistrationBean();
        beanFilter.setFilter(new WebStatFilter());
        Map<String,String> initParams = new HashMap<>();
        initParams.put("exclusions","*.js,*.json,*.html,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/static/*,/druid/*");
        beanFilter.setInitParameters(initParams);
        beanFilter.setUrlPatterns(Arrays.asList("/*"));
        return  beanFilter;
    }

發佈了145 篇原創文章 · 獲贊 193 · 訪問量 59萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章