MongoDB Slowquery慢查詢日誌分析平臺

簡介

MongoDB的慢SQL日誌是記錄到業務庫的system.profile表裏,當線上DB運行緩慢時,開發一般聯繫DBA去排查問題,那麼能夠將這種機械化的工做,作成一個平臺化、可視化的工具出來,讓開發在網頁裏點點鼠標便可查看數據庫運行情況,這將大大提升工做效率,下降對DBA的依賴。php

參考了Percona pt-mongodb-query-digest工具抓取分析的展現思路,並用PHP重構,將分析結果插入MySQL表裏,用前端頁面展示出來,方便開發定位問題。前端

每次抓取最近的1000條超過1秒的慢SQL記錄入庫。mysql

執行git

php check_mongo_slowsql.php

至關於執行:github

db.getSiblingDB("samples").system.profile.find({millis:{$gte:2000}},    
{millis:1,ns:1,query:1,ts:1,client:1,user:1}).sort({ts:-1}).limit(1000)

採用遠程鏈接方式獲取慢SQL,因此無須要在數據庫服務器端部署相關agent或計劃任務。sql

1.png


首頁彙總了生產業務庫31天內的慢SQL集合。mongodb


2.png


點擊《選擇數據庫標籤》能夠查看具體的業務庫慢SQL趨勢走向。數據庫


3.png


點擊抽象語句欄目的✚號,會彈出一個新鏈接,展現慢SQL的來源用戶名,IP,集合的大小,集合的索引信息,以及SQL的Explain執行計劃。服務器


Github地址:https://github.com/hcymysql/mongo_slowqueryapp

相關文章
相關標籤/搜索