一、概述
当前互联网和很多公司,日益都采用阿里数据库连接池druid,druid本身也有监控页面,但是我们自己也需要对监控信息进行采集 ,接入自己的监控平台,因此需要能够查询的druid的监控信息
二、方案
方案一: 直接监控平台中嵌入druid的页面 但是无法解决网关认证和指定ip调用的问题
方案二: 在监控平台开发属于自己的监控页面,调用接口获取监控信息
1、服务中打开druid监控
1)自定义StatViewServlet的Bean,对druid-spring-boot-starter做封装,在pom中加入druid-spring-boot-starter依赖
2)增加对DruidDataSource的子类CustomDruidDatasource,在类上增加@ConfigurationProperties(prefix="spring.datasource.druid")的注解
3)增加配置
xml
# 支持SQL,防御统计
spring.datasource.druid.stat-view-servlet.enable=true
# 支持重置
spring.datasource.druid.stat-view-servlet.resetEnable=true
# 支持uri和session统计
spring.datasource.druid.web-stat-filter.enable=true
# 配置监控统计拦截的filters,去掉监控SQL无法统计
spring.datasource.druid.filters=stat,wall
# 用connectionPropertis属性来统计慢SQL记录,打开mergeSQL功能
spring.datasource.druid.connectionPropertis=druid.stat.mergeSql=true;druid.stat.slowSqlMills=5000
4)Filter配置
具体查看druid-spring-boot-starter包中spring-configuration-metadata.json文件
xml
#如打印慢SQL可以使用
spring.datasource.druid.filter.stat.log-slow-sql=true
禁止alter table
spring.datasource.druid.filter.wall.config.alter-table-allow=true