解决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的配置可以直接放到配置中处理,其他缺少的配置可以自行添加:
重启之后配置生效:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持趣讯吧。