druid监控页面配置问题,sql 监控 无数据

"本文介绍了在SpringBoot项目中配置Druid监控页面遇到的问题及解决方案。当使用多数据源时,Druid的监控页面无法正常显示SQL监控记录。解决方法是在主数据源上手动指定过滤器,通过`addFilters("stat")`来启用监控。此外,还展示了如何通过Java配置方式注册Druid的StatViewServlet。"
摘要由CSDN通过智能技术生成

项目场景:

项目基于springboot2.3.3  druid1.2.1


问题描述:

配置druid监控页面,配置druid监控属性如下

spring:
  datasource:
    druid:
      # 监控过滤器
      webStatFilter:
        enabled: true
      # druid 监控页面
      statViewServlet:
        enabled: true
        # 设置白名单,不填则允许所有访问
        allow:
        url-pattern: /druid/*
        # 控制台管理用户名和密码
        login-username: admin
        login-password: admin
      # 状态监控
      filter:
        stat:
          enabled: true
          # 慢SQL记录
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: true
          db-type: sqlserver
        wall:
          config:
            multi-statement-allow: true
项目运行后访问localhost:8080/druid/ 监控页报404

试着手动配置

@Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        Map<String,String> initParams = new HashMap<>();
        initParams.put("loginUsername","admin");
        initParams.put("loginPassword","admin");
        initParams.put("allow","");//value为空字符串的话,默认允许所有地址访问
        bean.setInitParameters(initParams);
        return bean;
    }

发现可以访问监控页,确定执行了sql, 但是sql监控页下的是没有记录的 


原因分析:

因为项目是采用多数据源的方式,stat并没有被指定到确定的数据源上,所以需要手动指定


解决方方式:

在主数据源上指定

@Bean
    @ConfigurationProperties("spring.datasource.druid.master")
    public DataSource masterDataSource(DruidProperties druidProperties) throws SQLException {
       DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
        //解决多数据源方式下,sql监控不显示问题
        dataSource.addFilters("stat");
        return druidProperties.dataSource(dataSource);
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值