MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

SpringBoot - Druid监控统计功能

2025-01-02 16:41 huorong 精选文章 4 ℃ 0 评论

配置属性

编辑项目的 applicaiton.propertiesapplicaiton.yml 文件,除了配置 JDBC 连接信息外,还需要配置 druid 过滤器、WebStatFilter 以及 StatViewServlet 相关参数信息:

##### JDBC 配置 #######
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/hangge2?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=hangge1234

##### 连接池配置 #######
# 过滤器设置(第一个stat很重要,没有的话会监控不到SQL)
spring.datasource.druid.filters=stat,wall,log4j2

##### WebStatFilter配置 #######
#启用StatFilter
spring.datasource.druid.web-stat-filter.enabled=true
#添加过滤规则
spring.datasource.druid.web-stat-filter.url-pattern=/*

#排除一些不必要的url
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
#开启session统计功能
spring.datasource.druid.web-stat-filter.session-stat-enable=true
#缺省sessionStatMaxCount是1000个
spring.datasource.druid.web-stat-filter.session-stat-max-count=1000
#spring.datasource.druid.web-stat-filter.principal-session-name=
#spring.datasource.druid.web-stat-filter.principal-cookie-name=
#spring.datasource.druid.web-stat-filter.profile-enable=

##### StatViewServlet配置 #######
#启用内置的监控页面
spring.datasource.druid.stat-view-servlet.enabled=true
#内置监控页面的地址
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
#关闭 Reset All 功能
spring.datasource.druid.stat-view-servlet.reset-enable=false
#设置登录用户名
spring.datasource.druid.stat-view-servlet.login-username=admin
#设置登录密码
spring.datasource.druid.stat-view-servlet.login-password=123
#白名单(如果allow没有配置或者为空,则允许所有访问)
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
#黑名单(deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝)
spring.datasource.druid.stat-view-servlet.deny=

慢 SQL 记录

有时系统会存在一些 SQL 执行很慢,如果希望日志记录下来,可以添加如下配置开启 Druid 的慢 SQL 记录功能。

注意slow-sql-millis 用来配置 SQL 慢的标准,执行时间超过 slow-sql-millis 的就是慢。slow-sql-millis 的缺省值为 3000,也就是 3 秒。

# 开启慢SQL统计(这里超过10毫秒则判定为慢SQL)
spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=10

Spring 监控

默认情况下监控控制台中“Spring监控”子页面内容是空的,我们可以通过类似如下的配置,利用 aop 对各个内容接口的执行时间、jdbc 数进行记录。

# Spring 监控配置(配置多个AOP切入点使用英文逗号分隔)
spring.datasource.druid.aop-patterns=com.example.hanggetest2.dao.*

获取 Druid 的监控数据

Druid 的监控数据可以在开启 StatFilter 后通过 DruidStatManagerFacade 进行获取,获取到监控数据之后我们便可以将其暴露给我们自己的监控系统进行使用。Druid 默认的监控系统数据也来源于此。

@RestController
public class DruidStatController {
    @GetMapping("/druid-stat")
    public Object druidStat(){
        // DruidStatManagerFacade#getDataSourceStatDataList 该方法可以获取所有数据源的监控数据
        // 除此之外 DruidStatManagerFacade 还提供了一些其他方法,我们可以按需选择使用。
        return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
    }
}

通过http://localhost:8080/druid-stat 接口获取到如下统计数据


Tags:druid参数配置

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言