文章目录
- 前置
- 依赖
- 启用配置
- 访问监控
- 一些问题
前置
连接池有很多类型,比如 c3p0,比如 hikariCP,比如 druid。c3p0 一些历史项目可能用的比较多,hikariCP 需要高性能的项目比较多,druid 性能也很好,而且还提供连接池的监控面板
现在你使用 java,使用 mysql,配置好了基本的 mysql 数据库的驱动配置,配置好了 druid 连接池基本内容
你想要监控 mysql 连接池的慢 sql 情况,连接泄漏等详细情况,可以考虑使用 druid 提供的监控能力
模块 | 功能描述 |
---|---|
数据源 | 查看数据库连接池的状态(活跃连接数、空闲连接数、连接等待时间等)。 |
SQL 监控 | 显示 SQL 执行次数、总耗时、慢查询(默认慢查询阈值为 1000ms)。 |
Session 统计 | 监控用户的会话信息(如最大并发连接数、会话超时时间等)。 |
Web 统计 | 查看 HTTP 请求的统计信息(如请求次数、平均响应时间、失败次数等)。 |
系统信息 | 显示 JVM 内存、线程、GC 状态等系统级监控数据。 |
依赖
如果你配置了 druid 的一些基本连接池的内容,这里不赘述,那么你肯定引入了 druid 的依赖了
启用配置
Springboot 配置
如果你是 Springboot 项目,在 application.yml 中配置即可
其中 stat-view-servlet 表示承接 /druid/
请求的 servlet,web-stat-filter 表示滤过哪些请求以及排查哪些请求
spring:datasource:druid:# 启用监控页面stat-view-servlet:enabled: trueurl-pattern: /druid/*login-username: admin # 登录用户名login-password: admin123 # 登录密码reset-enable: false # 是否允许重置数据(生产环境建议关闭)web-stat-filter:enabled: trueurl-pattern: /* # 监控所有请求exclusions: "*.js,*.css,/druid/*" # 排除静态资源
只用了 mybatis 没用 spring
如果你不是 springboot 项目,你只用了 mybatis:
mybatis-config.xml 中配置好 druid 连接池的基本连接信息后,多配置上:
<property name="filters" value="stat,wall" /> <!-- 启用监控和防御SQL注入 -->
然后你的项目还是老的 WEB-INF 项目,其中有 web.xml 文件,那么其中要配置 servlet 和 filter
<!-- Druid 监控 Servlet --><servlet><servlet-name>DruidStatView</servlet-name><servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class><init-param><param-name>loginUsername</param-name><param-value>admin</param-value> <!-- 登录用户名 --></init-param><init-param><param-name>loginPassword</param-name><param-value>admin123</param-value> <!-- 登录密码 --></init-param><init-param> <!-- 允许访问的IP(可选) --><param-name>allow</param-name><param-value>127.0.0.1</param-value></init-param></servlet><servlet-mapping><servlet-name>DruidStatView</servlet-name><url-pattern>/druid/*</url-pattern></servlet-mapping><!-- Druid Web 监控 Filter --><filter><filter-name>DruidWebStatFilter</filter-name><filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class><init-param><param-name>exclusions</param-name><param-value>*.js,*.css,/druid/*</param-value> <!-- 排除静态资源 --></init-param></filter><filter-mapping><filter-name>DruidWebStatFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
然后如果项目使用 Servlet 3.0+ 并支持注解,可以通过 Java 配置类注册来代替上方的在 web.xml 中的配置:你可以写一个 DruidWebConfig 类来继承 ServletContextListener,再重写其中 contextInitialized 方法,其中你可以注册 StatViewServlet 和 WebStatFilter,然后再 web.xml 配置一个监听即可
<listener><listener-class>com.test.config.DruidWebConfig</listener-class>
</listener>
访问监控
你本地启动项目的话,你可以浏览器访问:
http://localhost:8080/druid
如果你设置了 your-app-context(Web 应用部署到服务器上的应用上下文路径),则你需要访问
http://localhost:8080/your-app-context/druid
一些问题
页面 404:一般是 stat-view-servlet 或者 web-stat-filter 没配置对,一些常见的比如其他 filter 把这个请求拦截了