Java 8
Spring Boot 2.5.3
Druid 1.2.6
MySQL 5.7.21
---
前文展示了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)
參考文檔
3、GitHub druid-spring-boot-starter項目
這里有更完善的Druid使用、配置介紹。
第一手資料。
4、