晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/local/lsws/admin/html/static/scripts/ |
Upload File : |
function update_chart() {
myChart.update();
}
function get_server_data() {
let get_args = {"graph_type": graph_type};
var jqxhr = $.get("graph_xml.php", get_args, function (data) {
jd = JSON.parse(data);
myChart.data.labels.push(jd.CURTIME);
myChart.data.datasets[0].data.push(jd.BPS_IN);
myChart.data.datasets[1].data.push(jd.BPS_OUT);
myChart.data.datasets[2].data.push(jd.SSL_BPS_IN);
myChart.data.datasets[3].data.push(jd.SSL_BPS_OUT);
myChart.data.datasets[4].data.push(jd.PLAINCONN);
myChart.data.datasets[5].data.push(jd.SSLCONN);
myChart.data.datasets[6].data.push(jd.REQ_PROCESSING);
myChart.data.datasets[7].data.push(jd.REQ_PER_SEC);
myChart.data.datasets[8].data.push(jd.STATIC_HITS_PER_SEC);
myChart.data.datasets[9].data.push(jd.CACHE_HITS_PER_SEC);
$('#label_REQ_PROCESSING').text(jd.REQ_PROCESSING);
$('#label_REQ_PER_SEC').text(jd.REQ_PER_SEC);
$('#label_TOT_REQS').text(jd.TOT_REQS);
$('#label_TOTAL_STATIC_HITS').text(jd.TOTAL_STATIC_HITS);
$('#label_STATIC_HITS_PER_SEC').text(jd.STATIC_HITS_PER_SEC);
$('#label_TOTAL_CACHE_HITS').text(jd.TOTAL_CACHE_HITS);
$('#label_CACHE_HITS_PER_SEC').text(jd.CACHE_HITS_PER_SEC);
$('#label_TOTAL_PRIVATE_CACHE_HITS').text(jd.TOTAL_PRIVATE_CACHE_HITS);
$('#label_PRIVATE_CACHE_HITS_PER_SEC').text(jd.PRIVATE_CACHE_HITS_PER_SEC);
$('#label_AVAILCONN').text(jd.AVAILCONN);
$('#label_PLAINCONN').text(jd.PLAINCONN);
$('#label_MAXCONN').text(jd.MAXCONN);
$('#label_AVAILSSL').text(jd.AVAILSSL);
$('#label_SSLCONN').text(jd.SSLCONN);
$('#label_MAXSSL_CONN').text(jd.MAXSSL_CONN);
update_chart();
})
.fail(function () {
console.log('AJAX fail');
});
}
function get_vh_data() {
let get_args = {"graph_type": graph_type, "vhost": vhost};
var jqxhr = $.get("graph_xml.php", get_args, function (data) {
jd = JSON.parse(data);
myChart.data.labels.push(jd.CURTIME);
myChart.data.datasets[0].data.push(jd.REQ_PROCESSING);
myChart.data.datasets[1].data.push(jd.REQ_PER_SEC);
myChart.data.datasets[2].data.push(jd.STATIC_HITS_PER_SEC);
myChart.data.datasets[3].data.push(jd.CACHE_HITS_PER_SEC);
myChart.data.datasets[4].data.push(jd.EAP_INUSE);
myChart.data.datasets[5].data.push(jd.EAP_IDLE);
myChart.data.datasets[6].data.push(jd.EAP_WAITQ);
myChart.data.datasets[7].data.push(jd.EAP_REQ_PER_SEC); // EAP_REQ_PER_SEC
$('#label_TOTAL_STATIC_HITS').text(jd.TOTAL_STATIC_HITS);
$('#label_REQ_PROCESSING').text(jd.REQ_PROCESSING);
$('#label_REQ_PER_SEC').text(jd.REQ_PER_SEC);
$('#label_TOT_REQS').text(jd.TOT_REQS);
$('#label_TOTAL_STATIC_HITS').text(jd.TOTAL_STATIC_HITS);
$('#label_STATIC_HITS_PER_SEC').text(jd.STATIC_HITS_PER_SEC);
$('#label_TOTAL_CACHE_HITS').text(jd.TOTAL_CACHE_HITS);
$('#label_CACHE_HITS_PER_SEC').text(jd.CACHE_HITS_PER_SEC);
$('#label_TOTAL_PRIVATE_CACHE_HITS').text(jd.TOTAL_PRIVATE_CACHE_HITS);
$('#label_PRIVATE_CACHE_HITS_PER_SEC').text(jd.PRIVATE_CACHE_HITS_PER_SEC);
$('#label_EAP_PROCESS').text(jd.EAP_PROCESS);
$('#label_PLAINCONN').text(jd.PLAINCONN);
$('#label_EAP_INUSE').text(jd.EAP_INUSE);
$('#label_EAP_IDLE').text(jd.EAP_IDLE);
$('#label_EAP_WAITQ').text(jd.EAP_WAITQ);
$('#label_EAP_REQ_PER_SEC').text(jd.EAP_REQ_PER_SEC);
update_chart();
})
.fail(function () {
console.log('AJAX fail');
});
}
function get_extapp_data() {
let get_args = {"graph_type": graph_type, "vhost": vhost, "extapp": extapp};
var jqxhr = $.get("graph_xml.php", get_args, function (data) {
jd = JSON.parse(data);
myChart.data.labels.push(jd.CURTIME);
myChart.data.datasets[0].data.push(jd.INUSE_CONN);
myChart.data.datasets[1].data.push(jd.IDLE_CONN);
myChart.data.datasets[2].data.push(jd.WAITQUEUE_DEPTH);
myChart.data.datasets[3].data.push(jd.REQ_PER_SEC);
$('#label_CONFIG_MAX_CONN').text(jd.CONFIG_MAX_CONN);
$('#label_EFFECT_MAX_CONN').text(jd.EFFECT_MAX_CONN);
$('#label_POOL_SIZE').text(jd.POOL_SIZE);
$('#label_INUSE_CONN').text(jd.INUSE_CONN);
$('#label_IDLE_CONN').text(jd.IDLE_CONN);
$('#label_WAITQUEUE_DEPTH').text(jd.WAITQUEUE_DEPTH);
$('#label_REQ_PER_SEC').text(jd.REQ_PER_SEC);
update_chart();
})
.fail(function () {
console.log('AJAX fail');
});
}
function reset_interval(graph_type, seconds) {
if (graph_type == 'Server') {
interval_id = setInterval(get_server_data, seconds * 1000);
} else if (graph_type == 'VH') {
interval_id = setInterval(get_vh_data, seconds * 1000);
} else { // EXTAPP
interval_id = setInterval(get_extapp_data, seconds * 1000);
}
return interval_id;
}
var ctx = document.getElementById('realtimeChart').getContext('2d');
var data;
if (graph_type == 'Server') {
data = {
labels: [],
datasets: [
{
label: 'Http In (KB)',
data: [],
parsing: {
yAxisKey: 'BPS_IN'
},
borderColor: '#6fe5bf',
backgroundColor: '#6fe5bf'
}, {
label: 'Http Out (KB)',
data: [],
parsing: {
yAxisKey: 'BPS_OUT'
},
borderColor: '#f0a00e',
backgroundColor: '#f0a00e'
}, {
label: 'Https In (KB)',
data: [],
parsing: {
yAxisKey: 'SSL_BPS_IN'
},
borderColor: '#4c8a4a',
backgroundColor: '#4c8a4a'
}, {
label: 'Https Out (KB)',
data: [],
parsing: {
yAxisKey: 'SSL_BPS_OUT'
},
borderColor: '#e7e004',
backgroundColor: '#e7e004'
}, {
label: 'Http Used',
data: [],
parsing: {
yAxisKey: 'PLAINCONN'
},
borderColor: '#fd20b9',
backgroundColor: '#fd20b9'
}, {
label: 'Https Used',
data: [],
parsing: {
yAxisKey: 'SSLCONN'
},
borderColor: '#c23636',
backgroundColor: '#c23636'
}, {
label: 'Req in Processing',
data: [],
parsing: {
yAxisKey: 'REQ_PROCESSING'
},
borderColor: '#70ab44',
backgroundColor: '#70ab44'
}, {
label: 'Req/Sec',
data: [],
parsing: {
yAxisKey: 'REQ_PER_SEC'
},
borderColor: '#9628c6',
backgroundColor: '#9628c6',
}, {
label: 'Static Hits/Sec',
data: [],
parsing: {
yAxisKey: 'STATIC_HITS_PER_SEC'
},
borderColor: '#a4c6e7',
backgroundColor: '#a4c6e7'
}, {
label: 'Public Cache Hits/Sec',
data: [],
parsing: {
yAxisKey: 'CACHE_HITS_PER_SEC'
},
borderColor: '#3f81c3',
backgroundColor: '#3f81c3'
}]
};
} else if (graph_type == 'VH') {
data = {
labels: [],
datasets: [
{
label: 'Req in Processing',
data: [],
parsing: {
yAxisKey: 'REQ_PROCESSING'
},
borderColor: '#70ab44',
backgroundColor: '#70ab44'
}, {
label: 'Req/Sec',
data: [],
parsing: {
yAxisKey: 'REQ_PER_SEC'
},
borderColor: '#9628c6',
backgroundColor: '#9628c6'
}, {
label: 'Static Hits/Sec',
data: [],
parsing: {
yAxisKey: 'STATIC_HITS_PER_SEC'
},
borderColor: '#a4c6e7',
backgroundColor: '#a4c6e7'
}, {
label: 'Public Cache Hits/Sec',
data: [],
parsing: {
yAxisKey: 'CACHE_HITS_PER_SEC'
},
borderColor: '#3f81c3',
backgroundColor: '#3f81c3'
}, {
label: 'EAProc In Use',
data: [],
parsing: {
yAxisKey: 'EAP_INUSE'
},
borderColor: '#009926',
backgroundColor: '#009926'
}, {
label: 'EAProc Idle',
data: [],
parsing: {
yAxisKey: 'EAP_IDLE'
},
borderColor: '#f0a00e',
backgroundColor: '#f0a00e'
}, {
label: 'EAProc WaitQ',
data: [],
parsing: {
yAxisKey: 'EAP_WAITQ'
},
borderColor: '#d13814',
backgroundColor: '#d13814'
}, {
label: 'EAProc Req/Sec',
data: [],
parsing: {
yAxisKey: 'EAP_REQ_PER_SEC'
},
borderColor: '#6808d1',
backgroundColor: '#6808d1'
}]
};
} else if (graph_type == 'EXTAPP') {
data = {
labels: [],
datasets: [
{
label: 'In Use Conn',
data: [],
parsing: {
yAxisKey: 'INUSE_CONN'
},
borderColor: '#009926',
backgroundColor: '#009926'
}, {
label: 'Idle Conn',
data: [],
parsing: {
yAxisKey: 'IDLE_CONN'
},
borderColor: '#f0a00e',
backgroundColor: '#f0a00e'
}, {
label: 'WaitQ',
data: [],
parsing: {
yAxisKey: 'WAITQUEUE_DEPTH'
},
borderColor: '#d13814',
backgroundColor: '#d13814'
}, {
label: 'Req/Sec',
data: [],
parsing: {
yAxisKey: 'REQ_PER_SEC'
},
borderColor: '#6808d1',
backgroundColor: '#6808d1'
}]
};
} else {
console.log('graph_type error');
}
var cfg = {
type: 'line',
data: data,
options: {
plugins: {
title: {
display: true,
text: graph_title,
font: {
weight: 'bold',
size: 24
}
}
}
}
};
var myChart = new Chart(ctx, cfg);
$(document).ready(function () {
let interval_id = reset_interval(graph_type, 15); // initial default to 15 secs
$('#refresh_period').on('change', function (e) {
var refresh_val = $('#refresh_period option:selected').val();
switch (refresh_val) {
case 'STOP':
clearInterval(interval_id);
break;
case '10':
case '15':
case '30':
case '60':
case '120':
case '300':
clearInterval(interval_id);
interval_id = reset_interval(graph_type, refresh_val);
break;
default:
console.log('Error: Invalid SELECT Input:#refresh_period option value: ' + refresh_val);
}
});
});