解决druid监控页面SQL不显示的问题
druid监控页面SQL不显示
如果可以正常访问界面,系统与数据库有交互,但是druid页面SQL监控却没数据
第一步查看【数据源】
检查filter是否没数据
第二步若没有数据,则查看自己的配置类
可以程序编写filterRegistrationBean,并通过@Bean自动加载
@Configuration public class DruidConfig { @Value("${druid.login.user_name}") private String userName; @Value("${druid.login.password}") private String password; @Bean(name = "default_datadatasource") @ConfigurationProperties(prefix = "spring.datasource") public DataSource druidDataSource(){ return new DruidDataSource(); } @Bean public ServletRegistrationBean druidServlet() { ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(); servletRegistrationBean.setServlet(new StatViewServlet()); servletRegistrationBean.addUrlMappings("/druid/*"); Map<String, String> initParameters = new HashMap<>(); initParameters.put("loginUsername", userName);// 用户名 initParameters.put("loginPassword", password);// 密码 initParameters.put("resetEnable", "false");// 禁用HTML页面上的“Reset All”功能 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; } }
或是编写配置类
#状态监控 filter: stat: # 慢SQL记录 log-slow-sql: true slow-sql-millis: 1000 merge-sql: true enabled: true wall: config: multi-statement-allow: true # 监控过滤器 web-stat-filter: enabled: true exclusions: - "*.js" - "*.gif" - "*.jpg" - "*.png" - "*.css" - "*.ico" - "/monitor/druid/*"
这里需要注意的是filter->stat-> enabled: true,这个一定不能遗漏,否则后面的所有配置都不起作用
springboot druid SQL监控无数据
碰到这个问题的在网上查了下,大部分的解决办法都是在配置Servlet时再声明一个 dataSource 和在配置中加上监控统计拦截的filters;如下:
那么问题就简单了,因为我的项目使用了多数据源,所以只需要找到创建数据源的地方,加上监控统计拦截的filters就可以了
关于Servlet的配置可以直接放到配置中处理,其他缺少的配置可以自行添加:
重启之后配置生效:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
赞 (0)