pull/617/head
Mr Chen 10 months ago
parent 88a7431067
commit 699f71e636
  1. 1
      plugins/simpleping/index.html
  2. 2
      plugins/simpleping/install.sh
  3. 190
      plugins/simpleping/js/simpleping.js
  4. 16
      plugins/simpleping/simpleping_index.py

@ -6,6 +6,7 @@
<p onclick="pluginInitD('simpleping');">自启动</p> <p onclick="pluginInitD('simpleping');">自启动</p>
<p onclick="pluginConfig('simpleping',$('.plugin_version').attr('version'));">配置修改</p> <p onclick="pluginConfig('simpleping',$('.plugin_version').attr('version'));">配置修改</p>
<p onclick="pingDataGraph()">连通性</p> <p onclick="pingDataGraph()">连通性</p>
<p onclick="pingMySQLDataGraph()">MySQL</p>
<p onclick="appReadme();">相关说明</p> <p onclick="appReadme();">相关说明</p>
</div> </div>

@ -38,7 +38,7 @@ Install_App()
# https://github.com/midoks/simpleping/releases/download/1.0/simpleping_linux_amd64.tar.gz # https://github.com/midoks/simpleping/releases/download/1.0/simpleping_linux_amd64.tar.gz
if [ ! -f $APP_DIR/${FILE_TGZ} ];then if [ ! -f $APP_DIR/${FILE_TGZ} ];then
wget -O $APP_DIR/${FILE_TGZ} https://github.com/midoks/simpleping/releases/download/1.0/${FILE_TGZ} wget -O $APP_DIR/${FILE_TGZ} https://github.com/midoks/simpleping/releases/download/2.0/${FILE_TGZ}
fi fi
mkdir -p $serverPath/simpleping mkdir -p $serverPath/simpleping

@ -335,7 +335,197 @@ function pingDataGraph(){
}); });
pingIpList(); pingIpList();
}
// --------------------------------------------------------------------------------------------------------------
// MYSQL PING
// --------------------------------------------------------------------------------------------------------------
var chartMySQLPingData = [];
var chartMySQLPing;
var posMySQLTimer;
function pingMySQLDataGraphPosData(){
var isOk = document.getElementById('mysqlview');
if (!isOk){
clearInterval(posMySQLTimer);
}
if (chartMySQLPingData.length>0){
var dlen = chartMySQLPingData.length;
last_pos = chartMySQLPingData[dlen-1];
// console.log(start,end);
pingPostCallbakN('pingMySQLData', {'type':'pos', 'pos':last_pos['created_unix']}, function(data){
var tmp_data = data.data;
for (x in tmp_data){
chartMySQLPingData.push(tmp_data[x]);
}
pingDataMySQLGraphRender();
});
}
}
function pingDataMySQLGraphRender(){
var xData = [];
var yData = [];
var rdata = chartMySQLPingData;
for(var i = 0; i < rdata.length; i++){
xData.push(toCommonTime(rdata[i].created_unix));
yData.push(rdata[i].value);
}
var option = {
tooltip: {
trigger: 'axis',
axisPointer: { type: 'cross' },
formatter: '{b}<br />{a}: {c}'
},
xAxis: {
type: 'category',
boundaryGap: false,
data: xData,
axisLine:{ lineStyle:{ color:"#666"} }
},
yAxis: {
type: 'value',
name: "MySQL同步延迟",
splitLine:{ lineStyle:{ color:"#ddd" } },
axisLine:{ lineStyle:{ color:"#666" } }
},
series: [
{
name:'PING',
type:'line',
smooth:true,
symbol: 'none',
sampling: 'average',
itemStyle: { normal: { color: 'rgb(0, 153, 238)' } },
data: yData
}
]
};
chartMySQLPing.setOption(option);
}
function pingMySQLDataGraphData(day){
var now = (new Date().getTime())/1000;
if(day==0){
var start = (new Date(getToday() + " 00:00:01").getTime())/1000;
start = Math.round(start);
var end = Math.round(now);
}
if(day==1){
var start = (new Date(getBeforeDate(day) + " 00:00:01").getTime())/1000;
var end = (new Date(getBeforeDate(day) + " 23:59:59").getTime())/1000;
start = Math.round(start);
end = Math.round(end);
} else {
var start = (new Date(getBeforeDate(day) + " 00:00:01").getTime())/1000;
start = Math.round(start);
var end = Math.round(now);
}
var cur_ip = $('select[name="ip_list"]').val();
// console.log(start,end);
pingPostCallbak('pingMySQLData', {'type':'range', 'start':start, 'end':end, 'ip':cur_ip}, function(data){
chartMySQLPingData = data.data;
pingDataMySQLGraphRender();
if (day!=1){
clearInterval(posMySQLTimer);
posMySQLTimer = setInterval(function() {
pingMySQLDataGraphPosData();
}, 3000);
}
});
}
function pingMySQLDataGraph(){
var tpl = '\
<div class="col-xs-12 col-sm-12 col-md-12 pull-left pd0 view1">\
<div class="pr8">\
<div class="bgw pb15">\
<div class="title c6 plr15">\
<h3 class="c-tit f16">MySQL检查</h3>\
<div class="searcTime pull-right">\
<span class="gt" onclick="pingMySQLDataGraphData(1)">昨天</span>\
<span class="gt on" onclick="pingMySQLDataGraphData(0)">今天</span>\
<span class="gt" onclick="pingMySQLDataGraphData(7)">最近7天</span>\
</div>\
</div>\
<div id="mysqlview" style="width:100%; height:330px"></div>\
</div>\
</div>\
</div>';
$('.soft-man-con').html(tpl);
$('.searcTime span').click(function(e){
$('.searcTime span').removeClass('on');
$(this).addClass('on');
});
chartMySQLPing = echarts.init(document.getElementById('mysqlview'));
var option = {
tooltip: {
trigger: 'axis',
axisPointer: { type: 'cross' },
formatter: '{b}<br />{a}: {c}'
},
xAxis: {
type: 'category',
boundaryGap: false,
data: [],
axisLine:{ lineStyle:{ color:"#666"} }
},
yAxis: {
type: 'value',
name: "MySQL延迟",
splitLine:{ lineStyle:{ color:"#ddd" } },
axisLine:{ lineStyle:{ color:"#666" } }
},
dataZoom: [{
type: 'inside',
start: 0,
end: 100,
zoomLock:true
}, {
start: 0,
end: 100,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '80%',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
}],
series: [
{
name:'延迟',
type:'line',
smooth:true,
symbol: 'none',
sampling: 'average',
itemStyle: { normal: { color: 'rgb(0, 153, 238)' } },
data: []
}
]
};
chartMySQLPing.setOption(option);
window.addEventListener("resize",function(){
chartMySQLPing.resize();
});
pingMySQLDataGraphData(0);
} }

@ -48,3 +48,19 @@ def pingData(args = ()):
data = conn.where('created_unix>=? and created_unix<=?',(start,end)).limit("1000").select() data = conn.where('created_unix>=? and created_unix<=?',(start,end)).limit("1000").select()
return data return data
def pingMySQLData(args = ()):
conn = mw.M('sp_mysql_ping').dbPos(getServerDir()+'/data', 'simpleping', 'db3')
field = 'id,value,created_unix'
conn = conn.field(field)
data = []
atype = args['type']
if atype == 'pos':
pos = args['pos']
data = conn.where('created_unix>?',(pos,)).limit("3000").select()
elif atype == 'range':
start = args['start']
end = args['end']
data = conn.where('created_unix>=? and created_unix<=?',(start,end)).limit("1000").select()
return data

Loading…
Cancel
Save