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

相关文章
相关标签/搜索