zoukankan      html  css  js  c++  java
  • Druid连接池:慢查询监控

    Java 8

    Spring Boot 2.5.3

    Druid 1.2.6

    MySQL 5.7.21

    ---

    前文:spring boot项目19:RDBMS连接池

    前文展示了S.B.中如何使用Druid数据库连接池,本文继续前面的项目,介绍如何监控慢查询。

    添加下面的配置:设置慢查询条件是 超过1毫秒 就是慢查询

    # 文件application.properties 中 添加
    # 慢查询 超过1毫秒就是
    # 是否需要数据库的支持呢?不需要
    spring.datasource.druid.filters=stat
    spring.datasource.druid.filter.stat.log-slow-sql=true
    spring.datasource.druid.filter.stat.slow-sql-millis=1

    上面配置了filters值,只有一个 stat,Druid Wiki介绍如下:配置了这个 stat 过滤器,后面的慢查询配置才生效

    StatFilter类部分源码:

    /**
     * @author wenshao [szujobs@hotmail.com]
     */
    public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
    
        private final static Log          LOG                        = LogFactory.getLog(StatFilter.class);
    
        private static final String       SYS_PROP_LOG_SLOW_SQL      = "druid.stat.logSlowSql";
        private static final String       SYS_PROP_SLOW_SQL_MILLIS   = "druid.stat.slowSqlMillis";
        private static final String       SYS_PROP_MERGE_SQL         = "druid.stat.mergeSql";
    
        public final static String        ATTR_NAME_CONNECTION_STAT  = "stat.conn";
        public final static String        ATTR_TRANSACTION           = "stat.tx";
        
        // ...省略...
        
    }

    登录Druid监控后台:http://localhost:9000/druid,查看其“SQL监控”,显示为空。

    执行查询:

    localhost:9000/api/country/getById?id=1

    查询成功。

    再次检查Druid监控后台的“SQL监控”,发现多了1条记录:执行数为1

    多次执行上面的查询(参数id可以变更为其它值),“SQL监控”也只是有这条记录,但是,执行数 变更为查询次数

    点击SQL列下的 查询语句超链接,可以看到下面的内容:查询语句 和 其它统计信息

    说明:

    1、重启应用,上面的SQL监控信息消失。

    2、Druid的慢查询监控 和数据库的慢查询无关。

    下面是数据库的慢查询配置:OFF-关闭状态

    mysql> show variables like '%slow%';
    +---------------------------+----------------------------------------+
    | Variable_name             | Value                                  |
    +---------------------------+----------------------------------------+
    | log_slow_admin_statements | OFF                                    |
    | log_slow_slave_statements | OFF                                    |
    | slow_launch_time          | 2                                      |
    | slow_query_log            | OFF                                    |
    | slow_query_log_file       | /var/lib/mysql/ben-VirtualBox-slow.log |
    +---------------------------+----------------------------------------+
    5 rows in set (0.02 sec)
    
    mysql> show variables like '%long_query%';
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 row in set (0.00 sec)
    

    参考文档

    1、MySQL慢查询—开启慢查询

    2、Druid Wiki

    3、GitHub druid-spring-boot-starter项目

    这里有更完善的Druid使用、配置介绍。

    第一手资料

    4、

  • 相关阅读:
    CALayer3层的属性
    CALayer1简介
    网络处理2异步POST请求和同步请求
    网络处理1异步GET请求
    【ObjectiveC】05第一个OC的类
    CALayer4自定义层
    .Net网站不能预编译以及不能请求的调试过程
    (源码)WinForm TextBox 实现自动索引功能
    分享一个WinForm里面自定义的MessageBox
    C#操作十六进制数据以及十进制与十六进制互相转换
  • 原文地址:https://www.cnblogs.com/luo630/p/15355711.html
Copyright © 2011-2022 走看看