<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
監控SQL是現在專案運維中必要的一部分,通過SQL監控我們能夠明顯的分析系統那些地方存在問題,從而有效的進行SQL優化,提升系統的效能。那麼常見的SQL監控方式又那些呢?
slow_query_log = ON slow_query_log_file = /data/mysql/slow.log long_query_time = 2
select userid from t_user;
# Time: 2022-04-16T20:40:30.411674Z
# Query_time: 90.438767 Lock_time: 0.000000 Rows_sent: 43 Rows_examined: 25360591
輸出SQL的查詢時間、鎖定時間、影響的行數等。
Spring Boot預設使用的資料庫連線池為HikariCP,但是Druid連線池為阿里巴巴開發的,提供強大的監控和擴充套件功能,如果專案中使用Druid連線池而沒有開啟SQL監控,那麼對於專案來說就是一種浪費,那麼Spring Boot Druid如何監控SQL呢?
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency>
spring: messages: encoding: UTF-8 baseName: i18n/messages fallbackToSystemLocale: false datasource: druid: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?allowMultiQueries=true&characterEncoding=utf8&serverTimezone=Hongkong&useSSL=true&nullNamePatternMatchesAll=true&autoReconnect=true username: xx password: yy #初始連線池值 initial-size: 10 //最大連線數 max-active: 100 //最小連線數 min-idle: 10 #連線等待時間 max-wait: 60000 # pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false #設定StatViewServlet監控頁面 stat-view-servlet: #開啟 enabled: true #存取監控路徑的地址 url-pattern: /druid/* #不允許清空,重新統計 reset-enable: false #登入使用者名稱 login-username: admin #登入密碼 login-password: admin #允許存取地址 allow: 127.0.0.1 ########## 設定WebStatFilter,用於採集web關聯監控的資料 ######### web-stat-filter: #啟動statFilter enabled: true #排除的url exclusions: /druid/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico #開啟session統計 session-stat-enable: true #session的最大個數,預設為100 session-stat-max-count: 1000 #過濾的url url-pattern: /* filter: stat: #開啟慢sql統計 log-slow-sql: true #慢sql的時間 slow-sql-millis: 2000 merge-sql: true #開啟druid datasource監控 enabled: true wall: config: multi-statement-allow: true
1.啟動專案,存取http://ip:port/druid, 進入登入頁面,輸入使用者名稱和密碼登入
2.資料來源頁面,該頁面設定的是當前dataSource的相關資訊
3.SQL監控頁面
此頁面會展示所有執行sql的語句,包含SQL執行次數、執行的時間、事務執行次數、最慢執行時間等資訊
4.URI監控,統計了所有Controller介面的存取以及執行情況
5.去除相關的廣告
存取監控頁面的時候,你可能會在頁面底部(footer)看到阿里巴巴的廣告 原因:引入的druid的jar包中的common.js(裡面有一段js程式碼是給頁面的footer追加廣告的) 去除的方案有兩種
5.1 直接註釋原始碼中的的相關程式碼
找到 druid-1.19 jar包 在common.j中直接註釋如下程式碼即可
// this.buildFooter();
5.2 自定義過濾來去除廣告
@WebFilter(urlPatterns = "/druid/js/common.js") public class RemoveDruidAdvertFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String text = Utils.readFromResource("support/http/resources/js/common.js"); text = text.replace("this.buildFooter();", ""); response.getWriter().write(text); } }
注意需要在中新增相關的過濾器
@SpringBootApplication @ServletComponentScan("com.skywares.fw.common.filter")//設定過濾器的地址 public class FwCoreApplication { public static void main(String[] args) { SpringApplication.run(FwCoreApplication.class, args); } }
目前Driud監控SQL功能只能針對單資料庫的情況,對於多資料來源的場景無法滿足。
Prometheus+grafana實現SQL監控方案比較複雜,本文中就不詳細講解了,在後續的效能優化專欄中會重點講解。
SQL監控是專案中比較重要的一環,本文從幾個方法來講解如何監控SQL,如果專案中還沒使用此功能,那麼趕緊去開啟吧。
到此這篇關於Spring Boot如何監控SQL執行情況的文章就介紹到這了,更多相關SpringBoot監控SQL內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45