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、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM