diff --git a/plugins/data_query/sql_mysql.py b/plugins/data_query/sql_mysql.py index a0ac7bbb9..31d31eb7f 100755 --- a/plugins/data_query/sql_mysql.py +++ b/plugins/data_query/sql_mysql.py @@ -233,6 +233,32 @@ class nosqlMySQLCtr(): rdata['list'] = result return mw.returnData(True,'ok', rdata) + def showStatusList(self,args): + sql = 'show status'; + sid = args['sid'] + + my_instance = self.getInstanceBySid(sid).conn() + if my_instance is False: + return mw.returnData(False,'无法链接') + + result = my_instance.query(sql) + rdata = {} + rdata['list'] = result + return mw.returnData(True,'ok', rdata) + + def showStatsList(self, args): + sql = "show status like 'Com_%'"; + sid = args['sid'] + + my_instance = self.getInstanceBySid(sid).conn() + if my_instance is False: + return mw.returnData(False,'无法链接') + + result = my_instance.query(sql) + rdata = {} + rdata['list'] = result + return mw.returnData(True,'ok', rdata) + # ---------------------------------- run ---------------------------------- # 获取 mysql 列表 def get_db_list(args): @@ -252,6 +278,15 @@ def get_proccess_list(args): t = nosqlMySQLCtr() return t.showProcessList(args) +def get_status_list(args): + t = nosqlMySQLCtr() + return t.showStatusList(args) + +def get_stats_list(args): + t = nosqlMySQLCtr() + return t.showStatsList(args) + + # 测试 def test(args): sid = args['sid'] diff --git a/plugins/data_query/static/html/index.html b/plugins/data_query/static/html/index.html index 9a1a65d56..95292cf54 100644 --- a/plugins/data_query/static/html/index.html +++ b/plugins/data_query/static/html/index.html @@ -81,10 +81,9 @@
- 进程 - 变量 - 状态 - 统计 + 进程 + 状态 + 统计
diff --git a/plugins/data_query/static/js/app.js b/plugins/data_query/static/js/app.js index 8ea0c2c42..1844bff1d 100755 --- a/plugins/data_query/static/js/app.js +++ b/plugins/data_query/static/js/app.js @@ -252,9 +252,30 @@ function initTabMySQL(){ mysqlGetDbList(); mysqlProcessList(); - setInterval(function(){ - mysqlProcessList(); + var mysql_timer = setInterval(function(){ + var name = $('#mysql_list_tab .tab-nav span.on').data('name'); + mysqlRunMysqlTab(name); + + var fname = $('#cutTab .tab-list .active').data('name'); + if (fname != 'mysql'){ + clearInterval(mysql_timer); + } },2000); + + $('#mysql_list_tab .tab-nav span').click(function(){ + $('#mysql_list_tab .tab-nav span').removeClass('on'); + $(this).addClass('on'); + var name = $(this).data('name'); + mysqlRunMysqlTab(name); + }); +} + +function mysqlRunMysqlTab(name){ + switch(name){ + case 'proccess':mysqlProcessList();break; + case 'status':mysqlStatusList();break; + case 'stats':mysqlStatsList();break; + } } // ------------------------- mysql start ------------------------------- @@ -421,6 +442,79 @@ function mysqlProcessList(){ var request_data = {}; request_data['sid'] = sid; myPostCBN('get_proccess_list',request_data ,function(rdata){ + if (rdata.data.status){ + var data = rdata.data.data; + var dlist = data['list']; + + var fields = mongodbGetDataFields(dlist); + + var header_field = ''; + for (var i =0 ; i'; + } + $('#mysql_ot_table thead tr').html(header_field); + + var tbody = ''; + for (var i = 0; i < dlist.length; i++) { + tbody += ''; + for (var j = 0; j < fields.length; j++) { + var f = fields[j]; + if (f in dlist[i]) { + tbody += ''+dlist[i][f]+''; + } else { + tbody += 'undefined'; + } + } + tbody += ''; + } + + $('#mysql_ot_table tbody').html(tbody); + } + }); +} + +function mysqlStatusList(){ + var sid = mysqlGetSid(); + var request_data = {}; + request_data['sid'] = sid; + myPostCBN('get_status_list',request_data ,function(rdata){ + console.log(rdata); + if (rdata.data.status){ + var data = rdata.data.data; + var dlist = data['list']; + + var fields = mongodbGetDataFields(dlist); + + var header_field = ''; + for (var i =0 ; i'; + } + $('#mysql_ot_table thead tr').html(header_field); + + var tbody = ''; + for (var i = 0; i < dlist.length; i++) { + tbody += ''; + for (var j = 0; j < fields.length; j++) { + var f = fields[j]; + if (f in dlist[i]) { + tbody += ''+dlist[i][f]+''; + } else { + tbody += 'undefined'; + } + } + tbody += ''; + } + + $('#mysql_ot_table tbody').html(tbody); + } + }); +} + +function mysqlStatsList(){ + var sid = mysqlGetSid(); + var request_data = {}; + request_data['sid'] = sid; + myPostCBN('get_stats_list',request_data ,function(rdata){ console.log(rdata); if (rdata.data.status){ var data = rdata.data.data; @@ -449,7 +543,6 @@ function mysqlProcessList(){ } $('#mysql_ot_table tbody').html(tbody); - } }); }