springboot集成druid做sql监控
druid是阿⾥开源的⼀个数据库连接池,提供强⼤的监控和扩展能⼒
并且ali还为我们封装了druid的starter,⾃动帮我们完成了⼀些servlet的配置,因此我们只需要写⼀个配置就可以完成⼀个基础的sql监控功能,我们来研究下具体做了什么
maven:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
怎么打开Druid的监控统计功能:
Druid内置提供⼀个StatFilter,它的别名是stat,⽤于统计监控信息。
spring.datasource.druid.filters=stat,wall
怎样使⽤Druid的内置监控页⾯
Druid内置提供了⼀个StatViewServlet⽤于展⽰Druid的统计信息。
这个StatViewServlet的⽤途包括:
提供监控信息展⽰的html页⾯
提供监控信息的JSON API
# StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
spring.datasource.abled=true #默认是false关闭的
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
druid连接池配置详解spring.datasource.set-enable=false
从名字看我们就知道了,它是⼀个servlet,但是springboot是没有l的,那么我们要怎么将这个servlet交给springboot呢?
我们通过配置进⼊,⽐如点开spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*,发现它进⼊了⼀个叫DruidStatProperties的配置类(springboot⼤多数starter都帮我们做了property的⼯作,我们就不⽤⾃⼰写了,只需要注⼊这个property就可以使⽤了):
public void setUrlPattern(String urlPattern){
this.urlPattern = urlPattern;
}
我们发现这个properties被DruidDataSourceAutoConfigure⾃动装配了,同时这个类中导⼊了其他的配置:
我们点开其中的DruidStatViewServletConfiguration:
@ConditionalOnWebApplication
@ConditionalOnProperty(name ="spring.datasource.abled", havingValue ="true", matchIfMissing =true) public class DruidStatViewServletConfiguration{
@Bean
public ServletRegistrationBean statViewServletRegistrationBean(DruidStatProperties properties){
DruidStatProperties.StatViewServlet config = StatViewServlet();
ServletRegistrationBean registrationBean =new ServletRegistrationBean();
registrationBean.setServlet(new StatViewServlet());
registrationBean.UrlPattern()!= null ? UrlPattern():"/druid/*");
Allow()!= null){
registrationBean.addInitParameter("allow", Allow());
}
Deny()!= null){
registrationBean.addInitParameter("deny", Deny());
}
LoginUsername()!= null){
registrationBean.addInitParameter("loginUsername", LoginUsername());
}
LoginPassword()!= null){
registrationBean.addInitParameter("loginPassword", LoginPassword());
}
ResetEnable()!= null){
registrationBean.addInitParameter("resetEnable", ResetEnable());
}
return registrationBean;
}
}
我们发现,他就帮我们完成了servlet的注⼊⼯作!
内置监控中的Web和Spring关联监控怎么配置?
WebStatFilter⽤于采集web-jdbc关联监控的数据。
‘’
这个同样需要在xml中配置,但前⾯解释了,我们现在只需要在配置⽂件中配置就好了:
# WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
spring.datasource.abled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.lusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
原理前⾯讲过了
于是,⼀个最基础的监控就配好了,框架真是⽅便:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。