From dcf8159d1c7507a4e87d0a1ae9b83fbc252b82e0 Mon Sep 17 00:00:00 2001 From: dami Date: Sat, 20 Jun 2026 18:11:57 +0800 Subject: [PATCH] update --- plugins/openresty/index.py | 2 + plugins/openresty/js/openresty.js | 104 +++++++++++++++++++++++++----- 2 files changed, 91 insertions(+), 15 deletions(-) diff --git a/plugins/openresty/index.py b/plugins/openresty/index.py index 1cb65f5a2..78f677831 100755 --- a/plugins/openresty/index.py +++ b/plugins/openresty/index.py @@ -439,6 +439,7 @@ def runInfo(): data['Reading'] = tmp[11] data['Writing'] = tmp[13] data['Waiting'] = tmp[15] + data["time"] = time.time() return mw.getJson(data) except Exception as e: try: @@ -453,6 +454,7 @@ def runInfo(): data['Reading'] = tmp[11] data['Writing'] = tmp[13] data['Waiting'] = tmp[15] + data["time"] = time.time() return mw.getJson(data) except Exception as e: return mw.returnJson(False, "oprenresty异常!") diff --git a/plugins/openresty/js/openresty.js b/plugins/openresty/js/openresty.js index 13e318797..0f04ee7a7 100755 --- a/plugins/openresty/js/openresty.js +++ b/plugins/openresty/js/openresty.js @@ -109,36 +109,110 @@ function orPluginOpServiceOp(a,b,c,d,a,v,request_callback){ }); } +var optmp_status = null; //查看Nginx负载状态 -function getOpStatus() { +function getOpStatus(){ + var con = "
\ + \ + \ + \ + \ + \ + \ + \ +
活动连接(Active connections)0
总连接次数(accepts)0
总握手次数(handled)0
总请求数(requests)0
请求数(Reading)0
响应数(Writing)0
驻留进程(Waiting)0
"; + $(".soft-man-con").html(con); + + getOpStatusOne(); + setInterval(function(){ + getOpStatusInterval(); + }, 5000); +} + +function getOpStatusOne(){ var loadT = layer.msg('正在处理,请稍后...', { icon: 16, time: 0, shade: 0.3 }); $.post('/plugins/run', {name:'openresty', func:'run_info'}, function(data) { - layer.close(loadT); + layer.close(loadT); try { var rdata = $.parseJSON(data.data); if ('status' in rdata && !rdata.status){ - showMsg(rdata.msg, function(){}, null,3000); + showMsg(rdata.msg, function(){ + var con = "Error" + rdata.msg + ""; + $(".soft-man-con .op_status").html(con); + }, null,3000); return; } - var con = "
\ - \ - \ - \ - \ - \ - \ - \ -
活动连接(Active connections)" + rdata.active + "
总连接次数(accepts)" + rdata.accepts + "
总握手次数(handled)" + rdata.handled + "
总请求数(requests)" + rdata.requests + "
请求数(Reading)" + rdata.Reading + "
响应数(Writing)" + rdata.Writing + "
驻留进程(Waiting)" + rdata.Waiting + "
"; - $(".soft-man-con").html(con); - }catch(err){ - showMsg(data.data, function(){}, null,3000); + optmp_status = rdata; + var con = "活动连接(Active connections)" + rdata.active + "\ + 总连接次数(accepts)" + rdata.accepts + "\ + 总握手次数(handled)" + rdata.handled + "\ + 总请求数(requests)" + rdata.requests + "\ + 请求数(Reading)" + rdata.Reading + "\ + 响应数(Writing)" + rdata.Writing + "\ + 驻留进程(Waiting)" + rdata.Waiting + ""; + $(".soft-man-con .op_status").html(con); + } catch(err) { + showMsg(data.data, function(){ + var con = "Error" + err + ""; + $(".soft-man-con .op_status").html(con); + }, null,3000); } },'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 = "Error" + rdata.msg + ""; + $(".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.requests - optmp_status.requests; + + // 检查除数是否有效 + 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 = "计算(QPS)"+qbs_nums+""; + } + + optmp_status = rdata; + var con = "活动连接(Active connections)" + rdata.active + "\ + 总连接次数(accepts)" + rdata.accepts + "\ + 总握手次数(handled)" + rdata.handled + "\ + 总请求数(requests)" + rdata.requests + "\ + 请求数(Reading)" + rdata.Reading + "\ + 响应数(Writing)" + rdata.Writing + "\ + 驻留进程(Waiting)" + rdata.Waiting + "" + qbs; + $(".soft-man-con .op_status").html(con); + } catch(err) { + showMsg(data.data, function(){ + var con = "Error" + err + ""; + $(".soft-man-con .op_status").html(con); + }, null,3000); + } + },'json'); +} + + + + function setOpCfg(){ orPost('get_cfg', {}, function(data){ var rdata = $.parseJSON(data.data);