<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>运维平台</title>
<style type="text/css">
*{margin: 0; padding: 0;}
body{font-size: 20px; color: #333;}
h1{position: relative; height: 100px; line-height: 100px; margin: 0; background: #555; color: #f2f2f2; font-size: 25px; text-align: center;}
ul,ol,li{list-style-type: none;}
#list{
margin: 0 auto;
padding-top: 4px;
}
#list ul{
display: flex;
flex-wrap: wrap;
margin-top: 30px;
}
#list li{
flex: 1;
min-width: 300px;
min-height: 240px;
margin: 2px 4px;
padding: 5px 10px;
border: 1px solid #eee;
}
#list .name{
font-weight: bold;
font-size: 20px;
}
#list .red{
color: #fff;
font-weight: bold;
background: #f00;
background: rgba(255,0,0,.8);
}
#list .red p span{
color: #fff;
}
#list .yellow{
font-weight: bold;
background: #ff0;
background: rgba(255,255,0,.8);
}
#list .green{
background: #0f0;
background: rgba(0,255,0,.8);
}
#list .died{
background: #666;
background: rgba(162,162,162,.8);
color: #fff;
}
#list p{
padding-top: 3px;
}
#list p span{
color: #f00;
font-weight: bold;
}
.time{
position: absolute; top: 0px; right: 20px;
color: #fff;
font-size: 25px;
}
</style>
</head>
<body>
<h1>泰隆银行DB运行监控/60s<span class="time"></span></h1>
<ul id="list"></ul>
<!-- <script src="http://libs.mingsixue.com/jquery/1.12.4/jquery.min.js"></script> -->
<script src="/static/Js/jquery-2.2.2.min.js"></script>
<script>
$(function(){
var renderTime = function() {
var now = new Date();
var y = now.getFullYear();
var m = now.getMonth() + 1;
var d = now.getDate();
var h = now.getHours();
var i = now.getMinutes();
var s = now.getSeconds();
m = m < 10 ? '0' + m : m;
d = d < 10 ? '0' + d : d;
h = h < 10 ? '0' + h : h;
i = i < 10 ? '0' + i : i;
s = s < 10 ? '0' + s : s;
var _date = y + '-' + m + '-' + d;
var _time = h + ':' + i + ':' + s;
$('.time').html(_date + ' ' + _time);
};
var render = function(data) {
var connectinfo = data.connectinfo;
var waitevent = data.waitevent;
var sessioninfo = data.sessioninfo;
// 数据重组
var data = [];
for (var key in connectinfo) {
for (var j in sessioninfo) {
if (sessioninfo[j].dbip == connectinfo[key].dbip) {
connectinfo[key].sessioncount = sessioninfo[j].sessioncount;
connectinfo[key].SESSIONTHRESHOLD = sessioninfo[j].SESSIONTHRESHOLD;
connectinfo[key].sessioninfo_status = sessioninfo[j].AVAILABILITY_STATUS
}
}
var arr = [];
for (var i = 0; i < waitevent.length; i++) {
if (waitevent[i].dbip == connectinfo[key].dbip) {
var obj = {
events: waitevent[i].events + ':' + waitevent[i].cnt,
status: waitevent[i].AVAILABILITY_STATUS
};
arr.push(obj);
}
}
connectinfo[key].waitevent = arr;
data.push(connectinfo[key]);
}
// red部分提取
console.log('aaaaaaa');
console.log(data);
console.log('aaaaaaa');
var redArr = [];
for (var kk in data) {
var isRed = false;
//scan 修复
if (data[kk].sessioninfo_status == 'red') {
isRed = true;
}
if (data[kk].dbstatus == 'died') {
isRed = true;
}
for (var i = 0; i < data[kk].waitevent.length; i++) {
if (data[kk].waitevent[i].status == 'red') {
isRed = true;
}
}
if (isRed) {
data[kk].status = 'red';
redArr.push(data[kk]);
//delete data[kk];
}
};
let newArrs = redArr.concat(data);
var _html = '<ul>';
//数据渲染
console.log('cccccccccccccc');
console.log(newArrs);
console.log('cccccccccccccc');
for (var k in newArrs) {
var cls = '';
if (newArrs[k].dbstatus == 'died') {
_html += '<li class="red">';
_html += '<p class="name">'+ newArrs[k].systag +'</p>';
_html += '<p>DBIP:'+ newArrs[k].dbip +'</p>';
_html += '<p>DB Status:'+ newArrs[k].dbstatus +'</p>';
} else {
if (newArrs[k].status == 'red') {
cls = 'red';
} else {
cls = 'green';
}
_html += '<li class="'+ cls +'">';
_html += '<p class="name">'+ newArrs[k].systag +'</p>';
_html += '<p>DBIP:'+ newArrs[k].dbip +'</p>';
_html += '<p>DB Status:'+ newArrs[k].dbstatus +'</p>';
_html += '<p>SessionCount:'+ newArrs[k].sessioncount +'</p>';
_html += '<p>SessionThresHold:'+ newArrs[k].SESSIONTHRESHOLD +'</p>';
if (newArrs[k].waitevent.length) {
_html += '<p> </p><p>Wait Event:</p>';
for (var m = 0; m < newArrs[k].waitevent.length; m++) {
var item = newArrs[k].waitevent[m];
_html += '<p>'+ item.events +'</p>';
}
}
}
_html += '</li>';
}
_html += '</ul>';
$('#list').html(_html);
};
var getOracleService = function(error) {
$.ajax({
url: '/api/check_oracle_service/',
type: 'GET',
data: {},
async: false,
dataType: 'json',
success: function(res) {
// var res = {
// "connectinfo": {
// "esbdb1": {
// "dbip": "10.2.120.141",
// "dbstatus": "open",
// "systag": "ESB数据库",
// "AVAILABILITY_STATUS": "green"
// },
// "uacdb2": {
// "AVAILABILITY_STATUS": "green",
// "systag": "4A数据库",
// "dbstatus": "open",
// "dbip": "10.2.120.182"
// },
// "uacdb1": {
// "systag": "4A数据库",
// "AVAILABILITY_STATUS": "green",
// "dbip": "10.2.120.181",
// "dbstatus": "open"
// },
// "esbdb3": {
// "systag": "ESB数据库",
// "AVAILABILITY_STATUS": "red",
// "dbip": "10.2.120.150",
// "dbstatus": "died"
// },
// "esbdb2": {
// "dbip": "10.2.120.142",
// "dbstatus": "open",
// "systag": "ESB数据库",
// "AVAILABILITY_STATUS": "green"
// },
// "uacdb3": {
// "AVAILABILITY_STATUS": "red",
// "systag": "4A数据库",
// "dbstatus": "died",
// "dbip": "10.2.120.192"
// }
// },
// "waitevent": [
// {
// "dbip": "10.2.120.141",
// "events": "SQL*Net message from client",
// "EVENTTHRESHOLD": "2",
// "cnt": "112",
// "systag": "ESB数据库",
// "AVAILABILITY_STATUS": "red"
// },
// {
// "AVAILABILITY_STATUS": "red",
// "systag": "ESB数据库",
// "cnt": "35",
// "EVENTTHRESHOLD": "2",
// "events": "rdbms ipc message",
// "dbip": "10.2.120.141"
// },
// {
// "systag": "ESB数据库",
// "AVAILABILITY_STATUS": "red",
// "events": "gcs remote message",
// "dbip": "10.2.120.141",
// "cnt": "5",
// "EVENTTHRESHOLD": "2"
// },
// {
// "dbip": "10.2.120.142",
// "events": "rdbms ipc message",
// "cnt": "35",
// "EVENTTHRESHOLD": "2",
// "systag": "ESB数据库",
// "AVAILABILITY_STATUS": "red"
// },
// {
// "cnt": "10",
// "EVENTTHRESHOLD": "2",
// "events": "SQL*Net message from client",
// "dbip": "10.2.120.142",
// "AVAILABILITY_STATUS": "red",
// "systag": "ESB数据库"
// },
// {
// "cnt": "5",
// "EVENTTHRESHOLD": "2",
// "events": "gcs remote message",
// "dbip": "10.2.120.142",
// "AVAILABILITY_STATUS": "red",
// "systag": "ESB数据库"
// },
// {
// "cnt": "24",
// "EVENTTHRESHOLD": "2",
// "events": "rdbms ipc message",
// "dbip": "10.2.120.181",
// "AVAILABILITY_STATUS": "red",
// "systag": "4A数据库"
// },
// {
// "EVENTTHRESHOLD": "2",
// "cnt": "7",
// "events": "SQL*Net message from client",
// "dbip": "10.2.120.181",
// "AVAILABILITY_STATUS": "red",
// "systag": "4A数据库"
// },
// {
// "cnt": "3",
// "EVENTTHRESHOLD": "2",
// "events": "gcs remote message",
// "dbip": "10.2.120.181",
// "AVAILABILITY_STATUS": "red",
// "systag": "4A数据库"
// },
// {
// "EVENTTHRESHOLD": "100",
// "cnt": "24",
// "events": "rdbms ipc message",
// "dbip": "10.2.120.182",
// "AVAILABILITY_STATUS": "green",
// "systag": "4A数据库"
// },
// {
// "EVENTTHRESHOLD": "100",
// "cnt": "5",
// "events": "SQL*Net message from client",
// "dbip": "10.2.120.182",
// "AVAILABILITY_STATUS": "green",
// "systag": "4A数据库"
// },
// {
// "cnt": "3",
// "EVENTTHRESHOLD": "100",
// "events": "gcs remote message",
// "dbip": "10.2.120.182",
// "AVAILABILITY_STATUS": "green",
// "systag": "4A数据库"
// }
// ],
// "sessioninfo": {
// "uacdb2": {
// "systag": "4A数据库",
// "AVAILABILITY_STATUS": "green",
// "SESSIONTHRESHOLD": "70",
// "sessioncount": "45",
// "dbip": "10.2.120.182"
// },
// "uacdb1": {
// "AVAILABILITY_STATUS": "green",
// "SESSIONTHRESHOLD": "70",
// "sessioncount": "48",
// "systag": "4A数据库",
// "dbip": "10.2.120.181"
// },
// "esbdb1": {
// "dbip": "10.2.120.141",
// "sessioncount": "175",
// "SESSIONTHRESHOLD": "70",
// "AVAILABILITY_STATUS": "red",
// "systag": "ESB数据库"
// },
// "esbdb2": {
// "AVAILABILITY_STATUS": "red",
// "SESSIONTHRESHOLD": "70",
// "sessioncount": "75",
// "systag": "ESB数据库",
// "dbip": "10.2.120.142"
// }
// }
// };
// render(res);
render(res);
},
error: function(res) {
// alert("数据返回出错");
}
});
}
getOracleService();
let n = 0;
setInterval(function() {
n++;
if (n >= 60) {
n = 0;
getOracleService();
}
renderTime();
}, 1000);
});
</script>
</body>
</html>
jquery 监控数据库
猜你喜欢
转载自blog.csdn.net/zhaoyangjian724/article/details/85490765
今日推荐
周排行