mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-10 01:39:25 +08:00
@@ -439,6 +439,7 @@ def runInfo():
|
|||||||
data['Reading'] = tmp[11]
|
data['Reading'] = tmp[11]
|
||||||
data['Writing'] = tmp[13]
|
data['Writing'] = tmp[13]
|
||||||
data['Waiting'] = tmp[15]
|
data['Waiting'] = tmp[15]
|
||||||
|
data["time"] = time.time()
|
||||||
return mw.getJson(data)
|
return mw.getJson(data)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
try:
|
try:
|
||||||
@@ -453,6 +454,7 @@ def runInfo():
|
|||||||
data['Reading'] = tmp[11]
|
data['Reading'] = tmp[11]
|
||||||
data['Writing'] = tmp[13]
|
data['Writing'] = tmp[13]
|
||||||
data['Waiting'] = tmp[15]
|
data['Waiting'] = tmp[15]
|
||||||
|
data["time"] = time.time()
|
||||||
return mw.getJson(data)
|
return mw.getJson(data)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return mw.returnJson(False, "oprenresty异常!")
|
return mw.returnJson(False, "oprenresty异常!")
|
||||||
|
|||||||
@@ -109,36 +109,119 @@ function orPluginOpServiceOp(a,b,c,d,a,v,request_callback){
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var optmp_status = null;
|
||||||
|
var optmp_timer = null;
|
||||||
|
|
||||||
//查看Nginx负载状态
|
//查看Nginx负载状态
|
||||||
function getOpStatus() {
|
function getOpStatus(){
|
||||||
|
var con = "<div><table class='table table-hover table-bordered op_status'>\
|
||||||
|
<tr><th>活动连接(Active connections)</th><td class='op_active'>0</td></tr>\
|
||||||
|
<tr><th>总连接次数(accepts)</th><td class='op_accepts'>0</td></tr>\
|
||||||
|
<tr><th>总握手次数(handled)</th><td class='op_handled'>0</td></tr>\
|
||||||
|
<tr><th>总请求数(requests)</th><td class='op_requests'>0</td></tr>\
|
||||||
|
<tr><th>请求数(Reading)</th><td class='op_reading'>0</td></tr>\
|
||||||
|
<tr><th>响应数(Writing)</th><td class='op_writing'>0</td></tr>\
|
||||||
|
<tr><th>驻留进程(Waiting)</th><td class='op_waiting'>0</td></tr>\
|
||||||
|
<tr><th>请求时间(time)</th><td class='op_waiting'>0</td></tr>\
|
||||||
|
</table></div>";
|
||||||
|
$(".soft-man-con").html(con);
|
||||||
|
|
||||||
|
getOpStatusOne();
|
||||||
|
clearInterval(optmp_timer);
|
||||||
|
optmp_timer = setInterval(function(){
|
||||||
|
if ($(".soft-man-con").length == 0){
|
||||||
|
clearInterval(optmp_timer);
|
||||||
|
}
|
||||||
|
getOpStatusInterval();
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getOpStatusOne(){
|
||||||
var loadT = layer.msg('正在处理,请稍后...', { icon: 16, time: 0, shade: 0.3 });
|
var loadT = layer.msg('正在处理,请稍后...', { icon: 16, time: 0, shade: 0.3 });
|
||||||
$.post('/plugins/run', {name:'openresty', func:'run_info'}, function(data) {
|
$.post('/plugins/run', {name:'openresty', func:'run_info'}, function(data) {
|
||||||
layer.close(loadT);
|
layer.close(loadT);
|
||||||
try {
|
try {
|
||||||
var rdata = $.parseJSON(data.data);
|
var rdata = $.parseJSON(data.data);
|
||||||
if ('status' in rdata && !rdata.status){
|
if ('status' in rdata && !rdata.status){
|
||||||
showMsg(rdata.msg, function(){}, null,3000);
|
showMsg(rdata.msg, function(){
|
||||||
|
var con = "<tr><th>Error</th><td>" + rdata.msg + "</td></tr>";
|
||||||
|
$(".soft-man-con .op_status").html(con);
|
||||||
|
}, null,3000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var con = "<div><table class='table table-hover table-bordered'>\
|
optmp_status = rdata;
|
||||||
<tr><th>活动连接(Active connections)</th><td>" + rdata.active + "</td></tr>\
|
var con = "<tr><th>活动连接(Active connections)</th><td>" + rdata.active + "</td></tr>\
|
||||||
<tr><th>总连接次数(accepts)</th><td>" + rdata.accepts + "</td></tr>\
|
<tr><th>总连接次数(accepts)</th><td>" + rdata.accepts + "</td></tr>\
|
||||||
<tr><th>总握手次数(handled)</th><td>" + rdata.handled + "</td></tr>\
|
<tr><th>总握手次数(handled)</th><td>" + rdata.handled + "</td></tr>\
|
||||||
<tr><th>总请求数(requests)</th><td>" + rdata.requests + "</td></tr>\
|
<tr><th>总请求数(requests)</th><td>" + rdata.requests + "</td></tr>\
|
||||||
<tr><th>请求数(Reading)</th><td>" + rdata.Reading + "</td></tr>\
|
<tr><th>请求数(Reading)</th><td>" + rdata.Reading + "</td></tr>\
|
||||||
<tr><th>响应数(Writing)</th><td>" + rdata.Writing + "</td></tr>\
|
<tr><th>响应数(Writing)</th><td>" + rdata.Writing + "</td></tr>\
|
||||||
<tr><th>驻留进程(Waiting)</th><td>" + rdata.Waiting + "</td></tr>\
|
<tr><th>驻留进程(Waiting)</th><td>" + rdata.Waiting + "</td></tr>\
|
||||||
</table></div>";
|
<tr><th>请求时间(time)</th><td class='op_waiting'>"+formatTimestamp(rdata.time)+"</td></tr>";
|
||||||
$(".soft-man-con").html(con);
|
$(".soft-man-con .op_status").html(con);
|
||||||
}catch(err){
|
} catch(err) {
|
||||||
showMsg(data.data, function(){}, null,3000);
|
showMsg(data.data, function(){
|
||||||
|
var con = "<tr><th>Error</th><td>" + err + "</td></tr>";
|
||||||
|
$(".soft-man-con .op_status").html(con);
|
||||||
|
}, null,3000);
|
||||||
}
|
}
|
||||||
},'json');
|
},'json');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getOpStatusInterval(){
|
||||||
|
$.post('/plugins/run', {name:'openresty', func:'run_info'}, function(data) {
|
||||||
|
try {
|
||||||
|
var rdata = $.parseJSON(data.data);
|
||||||
|
if ('status' in rdata && !rdata.status){
|
||||||
|
showMsg(rdata.msg, function(){
|
||||||
|
var con = "<tr><th>Error</th><td>" + rdata.msg + "</td></tr>";
|
||||||
|
$(".soft-man-con .op_status").html(con);
|
||||||
|
}, null,3000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var qbs = "";
|
||||||
|
if (optmp_status){
|
||||||
|
var time_diff = rdata.time - optmp_status.time;
|
||||||
|
var requests_diff = rdata.accepts - optmp_status.accepts;
|
||||||
|
|
||||||
|
// 检查除数是否有效
|
||||||
|
if (time_diff > 0) {
|
||||||
|
var qbs_nums = requests_diff / time_diff;
|
||||||
|
// 保留两位小数,并处理 NaN 和 Infinity
|
||||||
|
qbs_nums = isFinite(qbs_nums) ? qbs_nums.toFixed(2) : '0.00';
|
||||||
|
} else {
|
||||||
|
qbs_nums = '0.00';
|
||||||
|
}
|
||||||
|
console.log('QPS:', qbs_nums);
|
||||||
|
qbs = "<tr><th>计算(QPS)</th><td>"+qbs_nums+"</td></tr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
optmp_status = rdata;
|
||||||
|
|
||||||
|
var con = "<tr><th>活动连接(Active connections)</th><td>" + rdata.active + "</td></tr>\
|
||||||
|
<tr><th>总连接次数(accepts)</th><td>" + rdata.accepts + "</td></tr>\
|
||||||
|
<tr><th>总握手次数(handled)</th><td>" + rdata.handled + "</td></tr>\
|
||||||
|
<tr><th>总请求数(requests)</th><td>" + rdata.requests + "</td></tr>\
|
||||||
|
<tr><th>请求数(Reading)</th><td>" + rdata.Reading + "</td></tr>\
|
||||||
|
<tr><th>响应数(Writing)</th><td>" + rdata.Writing + "</td></tr>\
|
||||||
|
<tr><th>驻留进程(Waiting)</th><td>" + rdata.Waiting + "</td></tr>" + qbs +
|
||||||
|
"<tr><th>请求时间(time)</th><td class='op_waiting'>"+formatTimestamp(rdata.time)+"</td></tr>";;
|
||||||
|
$(".soft-man-con .op_status").html(con);
|
||||||
|
} catch(err) {
|
||||||
|
showMsg(data.data, function(){
|
||||||
|
var con = "<tr><th>Error</th><td>" + err + "</td></tr>";
|
||||||
|
$(".soft-man-con .op_status").html(con);
|
||||||
|
}, null,3000);
|
||||||
|
}
|
||||||
|
},'json');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function setOpCfg(){
|
function setOpCfg(){
|
||||||
orPost('get_cfg', {}, function(data){
|
orPost('get_cfg', {}, function(data){
|
||||||
var rdata = $.parseJSON(data.data);
|
var rdata = $.parseJSON(data.data);
|
||||||
|
|||||||
@@ -256,7 +256,18 @@ function getFormatTime(tm, format) {
|
|||||||
return format;
|
return format;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 格式化时间戳为 YYYY-MM-DD HH:ii:ss
|
||||||
|
function formatTimestamp(timestamp) {
|
||||||
|
if (!timestamp || timestamp === '') return '';
|
||||||
|
var date = new Date(timestamp * 1000); // 假设是秒级时间戳
|
||||||
|
var year = date.getFullYear();
|
||||||
|
var month = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
|
var day = String(date.getDate()).padStart(2, '0');
|
||||||
|
var hours = String(date.getHours()).padStart(2, '0');
|
||||||
|
var minutes = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
var seconds = String(date.getSeconds()).padStart(2, '0');
|
||||||
|
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
|
||||||
|
}
|
||||||
|
|
||||||
function changePathCallback(default_dir, callback) {
|
function changePathCallback(default_dir, callback) {
|
||||||
var c = layer.open({
|
var c = layer.open({
|
||||||
|
|||||||
Reference in New Issue
Block a user