pull/109/head
Mr Chen 6 years ago
parent 701f2fc470
commit 6eb6d0348f
  1. 49
      plugins/mysql/js/mysql.js
  2. 1256
      plugins/sphinx/class/sphinxapi.py
  3. 1
      plugins/sphinx/index.html
  4. 30
      plugins/sphinx/index.py
  5. 38
      plugins/sphinx/js/sphinx.js

@ -82,7 +82,7 @@ function runInfo(){
<tr><th>排序后的合并次数</th><td>' + rdata.Sort_merge_passes + '</td><td colspan="2">,sort_buffer_size</td></tr>\ <tr><th>排序后的合并次数</th><td>' + rdata.Sort_merge_passes + '</td><td colspan="2">,sort_buffer_size</td></tr>\
<tr><th>锁表次数</th><td>' + rdata.Table_locks_waited + '</td><td colspan="2">,</td></tr>\ <tr><th>锁表次数</th><td>' + rdata.Table_locks_waited + '</td><td colspan="2">,</td></tr>\
<tbody>\ <tbody>\
</table></div>' </table></div>';
$(".soft-man-con").html(Con); $(".soft-man-con").html(Con);
}); });
} }
@ -111,26 +111,6 @@ function myPort(){
}); });
} }
//设置二进制日志
function SetBinLog() {
var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: 0.3 });
$.post('/database?action=BinLog', "", function(rdata) {
layer.close(loadT);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 });
mysqlLog();
});
}
//清空日志
function closeMySqlLog() {
var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: 0.3 });
$.post('/database?action=GetErrorLog', "close=1", function(rdata) {
layer.close(loadT);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 });
mysqlLog();
});
}
//数据库存储信置 //数据库存储信置
function changeMySQLDataPath(act) { function changeMySQLDataPath(act) {
@ -158,33 +138,6 @@ function changeMySQLDataPath(act) {
//数据库日志
function mysqlLog(act) {
//获取二进制日志相关信息
$.post('/database?action=BinLog', "status=1", function(rdata) {
var limitCon = '<p class="conf_p">\
<span class="f14 c6 mr20">' + lan.soft.mysql_log_bin + ' </span><span class="f14 c6 mr20">' + ToSize(rdata.msg) + '</span>\
<button class="btn btn-success btn-xs va0" onclick="SetBinLog();">' + (rdata.status ? lan.soft.off : lan.soft.on) + '</button>\
<p class="f14 c6 mtb10" style="border-top:#ddd 1px solid; padding:10px 0">' + lan.soft.mysql_log_err + '<button class="btn btn-default btn-xs" style="float:right;" onclick="closeMySqlLog();">' + lan.soft.mysql_log_close + '</button></p>\
<textarea readonly style="margin: 0px;width: 515px;height: 440px;background-color: #333;color:#fff; padding:0 5px" id="error_log"></textarea>\
</p>'
$(".soft-man-con").html(limitCon);
//获取错误日志
$.post('/database?action=GetErrorLog', "", function(error_body) {
if (error_body.status === false) {
layer.msg(error_body.msg, { icon: 5 });
error_body = lan.soft.mysql_log_ps1;
}
if (error_body == "") error_body = lan.soft.mysql_log_ps1;
$("#error_log").text(error_body);
var ob = document.getElementById('error_log');
ob.scrollTop = ob.scrollHeight;
});
});
}
//数据库配置状态 //数据库配置状态
function myPerfOpt() { function myPerfOpt() {

File diff suppressed because it is too large Load Diff

@ -6,6 +6,7 @@
<p onclick="pluginConfig('sphinx');">配置修改</p> <p onclick="pluginConfig('sphinx');">配置修改</p>
<p onclick="pluginLogs('sphinx','','run_log');">运行日志</p> <p onclick="pluginLogs('sphinx','','run_log');">运行日志</p>
<p onclick="pluginLogs('sphinx','','query_log', 30);">查询日志</p> <p onclick="pluginLogs('sphinx','','query_log', 30);">查询日志</p>
<p onclick="runStatus();">运行状态</p>
<p onclick="rebuild();">重建索引</p> <p onclick="rebuild();">重建索引</p>
</div> </div>
<div class="bt-w-con pd15"> <div class="bt-w-con pd15">

@ -197,6 +197,14 @@ def runLog():
return tmp.groups()[0] return tmp.groups()[0]
def getPort():
path = getConf()
content = public.readFile(path)
rep = 'listen\s*=\s*(.*)'
tmp = re.search(rep, content)
return tmp.groups()[0]
def queryLog(): def queryLog():
path = getConf() path = getConf()
content = public.readFile(path) content = public.readFile(path)
@ -204,6 +212,26 @@ def queryLog():
tmp = re.search(rep, content) tmp = re.search(rep, content)
return tmp.groups()[0] return tmp.groups()[0]
def runStatus():
s = status()
if s != 'start':
return public.returnJson(False, '没有启动程序')
sys.path.append(getPluginDir() + "/class")
import sphinxapi
sh = sphinxapi.SphinxClient()
port = getPort()
sh.SetServer('127.0.0.1', port)
info_status = sh.Status()
rData = {}
for x in range(len(info_status)):
rData[info_status[x][0]] = info_status[x][1]
return public.returnJson(True, 'ok', rData)
if __name__ == "__main__": if __name__ == "__main__":
func = sys.argv[1] func = sys.argv[1]
if func == 'status': if func == 'status':
@ -230,5 +258,7 @@ if __name__ == "__main__":
print runLog() print runLog()
elif func == 'query_log': elif func == 'query_log':
print queryLog() print queryLog()
elif func == 'run_status':
print runStatus()
else: else:
print 'error' print 'error'

@ -40,8 +40,44 @@ function rebuildIndex(){
if (data.data == 'ok'){ if (data.data == 'ok'){
layer.msg('在重建中..',{icon:1,time:2000,shade: [0.3, '#000']}); layer.msg('在重建中..',{icon:1,time:2000,shade: [0.3, '#000']});
} else { } else {
layer.msg(data.data,{icon:1,time:2000,shade: [0.3, '#000']}); layer.msg(data.data,{icon:2,time:2000,shade: [0.3, '#000']});
} }
}); });
} }
function runStatus(){
spPost('run_status', '', function(data){
var rdata = $.parseJSON(data.data);
if (!rdata['status']){
layer.msg(rdata['msg'],{icon:2,time:2000,shade: [0.3, '#000']});
return;
}
var idata = rdata.data;
console.log(idata);
var Con = '<div class="divtable"><table class="table table-hover table-bordered" style="margin-bottom:10px;background-color:#fafafa">\
<tbody>\
<tr><th>运行时间</th><td>' + idata.uptime + 's</td><th></th><td>' + parseInt(parseInt(idata.queries) / parseInt(idata.uptime)) + '</td></tr>\
<tr><th>总连接次数</th><td>' + idata.connections + '</td><th>work_queue_length</th><td>' +idata.work_queue_length + '</td></tr>\
<tr><th>agent_connect</th><td>' + idata.agent_connect+ '</td><th>workers_active</th><td>' + idata.workers_active + '</td></tr>\
<tr><th>agent_retry</th><td>' + idata.agent_retry + '</td><th>workers_total</th><td>' + idata.workers_total + '</td></tr>\
</tbody>\
</table>\
<table class="table table-hover table-bordered">\
<thead style="display:none;"><th></th><th></th><th></th><th></th></thead>\
<tbody>\
<tr><th>command_delete</th><td>' + idata.command_delete + '</td><td colspan="2">command_delete</td></tr>\
<tr><th>command_excerpt</th><td>' + idata.command_excerpt + '</td><td colspan="2">command_excerpt</td></tr>\
<tr><th>command_flushattrs</th><td>' + idata.command_flushattrs + '</td><td colspan="2">command_flushattrs</td></tr>\
<tr><th>command_keywords</th><td>' + idata.command_keywords + '</td><td colspan="2">command_keywords</td></tr>\
<tr><th>command_persist</th><td>' + idata.command_persist + '</td><td colspan="2">command_persist</td></tr>\
<tr><th>command_search</th><td>' + idata.command_search + '</td><td colspan="2">command_search</td></tr>\
<tr><th>command_status</th><td>' + idata.command_status + '</td><td colspan="2">command_status</td></tr>\
<tr><th>command_update</th><td>' + idata.command_update + '</td><td colspan="2">command_update</td></tr>\
<tbody>\
</table></div>';
$(".soft-man-con").html(Con);
});
}

Loading…
Cancel
Save