前言之前项目我们采用的是jdbc数据源,今天我们采用druid数据源来监控我们项目的数据源,sql使用情况,web应用…等等

首选pom.xml中引入

<!-- alibaba的druid数据库连接池-->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.9</version>
		</dependency>

修改 application-dev.yml文件下的spring-datasource

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/web_test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    password: 123
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    filters: stat
    maxActive: 20
    initialSize: 1
    maxWait: 60000
    minIdle: 1
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: select 'x'
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    maxOpenPreparedStatements: 20

编写DruidDataSourceConfig类

package com.example.config;

import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;

/**
 * @author zhaozeren
 * @version 1.0
 * @date 2019/3/18
 */
@Configuration
public class DruidDataSourceConfig {

    @Bean
    public ServletRegistrationBean druidServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
        servletRegistrationBean.setServlet(new StatViewServlet());
        servletRegistrationBean.addUrlMappings("/druid/*");
        Map<String, String> initParameters = new HashMap<String, String>();
        initParameters.put("loginUsername", "admin");// 用户名
        initParameters.put("loginPassword", "admin");// 密码
        initParameters.put("resetEnable", "false");// 禁用HTML页面上的“Reset All”功能
        initParameters.put("allow", ""); // IP白名单 (没有配置或者为空,则允许所有访问)
        //initParameters.put("deny", "192.168.20.38");// IP黑名单 (存在共同时,deny优先于allow)
        servletRegistrationBean.setInitParameters(initParameters);
        return servletRegistrationBean;
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;
    }

}

注意:如果使用了拦截器,或安全框架等,需放行/druid/**
本文使用了shiro所以在shiroConfig中放行

springBoot使用druid数据源监控配置

测试

访问http://localhost:8888/druid/login.html
springBoot使用druid数据源监控配置
springBoot使用druid数据源监控配置
应用场景(或者说监控页面关注的选项)
数据源

连接数设置,事务及连接数使用情况以及使用详细情况

SQL监控

执行时间,最慢,读取行数,最大并发数,以及时间分布。不一一说明

SQL防火墙

可以看出表的使用情况

Web应用

并发,请求数,来源于哪个类型操作系统,来源于哪些浏览器

URI监控

请求次数,请求时间,最大并发,区间分布

相关文章:

  • 2021-10-09
  • 2021-08-30
  • 2021-10-14
  • 2022-12-23
  • 2021-05-28
  • 2021-05-07
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-14
  • 2021-08-08
  • 2021-04-27
  • 2022-12-23
  • 2022-12-23
  • 2021-06-19
  • 2022-12-23
相关资源
相似解决方案