mysql连接池druid监控配置

前置

连接池有很多类型,比如 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: true
        url-pattern: /druid/*
        login-username: admin       # 登录用户名
        login-password: admin123    # 登录密码
        reset-enable: false         # 是否允许重置数据(生产环境建议关闭)
      web-stat-filter:
        enabled: true
        url-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 把这个请求拦截了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值