forked from circlecloud/tera
383 lines
8.6 KiB
HTML
383 lines
8.6 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>Counters</title>
|
|
<meta charset='utf-8' />
|
|
<link rel="shortcut icon" href="/HTML/PIC/counters.png" type="image/png">
|
|
<link rel="stylesheet" type="text/css" href="/HTML/CSS/style.css">
|
|
</head>
|
|
<body>
|
|
|
|
<script>
|
|
window.RUN_CLIENT=1;
|
|
window.RUN_SERVER=0;
|
|
if(typeof global === 'object')
|
|
{
|
|
global.RUN_CLIENT=1;
|
|
global.RUN_SERVER=0;
|
|
}
|
|
</script>
|
|
|
|
<script type="text/javascript" src="/HTML/JS/coinlib.js"></script>
|
|
<script type="text/javascript" src="../HTML/JS/client.js"></script>
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
var TabbleStat,TableError;
|
|
var PrevData;
|
|
function SetResult(Data)
|
|
{
|
|
if(!Data)
|
|
Data=PrevData;
|
|
if(!Data || !Data.result)
|
|
return;
|
|
PrevData=Data;
|
|
|
|
|
|
var arrnames=["10s","10m","total, avg"];
|
|
var arrmult=[10,10*60,Data.period*10];
|
|
for(var i=0;i<arrmult.length;i++)
|
|
{
|
|
if(arrmult[i]>Data.period)
|
|
arrmult[i]=Data.period;
|
|
|
|
arrmult[i]=arrmult[i]/10;
|
|
}
|
|
|
|
|
|
var arrdata=[Data.stats.Counter10S,Data.stats.Counter10M,Data.stats.Counter];
|
|
var arrerr=[Data.errors.Counter10S,Data.errors.Counter10M,Data.errors.Counter];
|
|
//drawChart(arrdata,arrnames,arrmult);
|
|
|
|
|
|
SetStat(TabbleStat,arrdata);
|
|
SetStat(TableError,arrerr);
|
|
}
|
|
function ClearTableStat(htmlTable)
|
|
{
|
|
for(var i=htmlTable.rows.length-1;i>0;i--)
|
|
htmlTable.deleteRow(i);
|
|
htmlTable.StatItem={};
|
|
}
|
|
|
|
function SetStat(htmlTable,arr)
|
|
{
|
|
var StrFilter = document.getElementById("idFilter").value;
|
|
|
|
var rows=htmlTable.rows;
|
|
if(!htmlTable.StatItem)
|
|
{
|
|
htmlTable.StatItem={};
|
|
htmlTable.StatItem["Total"]=rows[1];
|
|
}
|
|
|
|
if(0)
|
|
for(var i=1;i<rows.length;i++)
|
|
rows[i].Do=1;
|
|
|
|
for(var m=0;m<arr.length;m++)
|
|
{
|
|
var Data=arr[m];
|
|
var Sum=0;
|
|
for(var name in Data)
|
|
{
|
|
if(name.indexOf("MAX:")!==-1)
|
|
continue;
|
|
var Count=Data[name];
|
|
if(Count)
|
|
{
|
|
Sum+=parseInt(Count);
|
|
}
|
|
}
|
|
Data["Total"]=Sum;
|
|
|
|
for(var name in Data)
|
|
{
|
|
|
|
var item=htmlTable.StatItem[name];
|
|
if(!item)
|
|
{
|
|
//index=htmlTable.rows.length;
|
|
|
|
var item=htmlTable.insertRow(1);
|
|
htmlTable.StatItem[name]=item;
|
|
item.insertCell(0);
|
|
for(var n=0;n<arr.length;n++)
|
|
{
|
|
item.insertCell(n+1);
|
|
}
|
|
|
|
item.cells[0].innerText=name;
|
|
item.insertCell(arr.length);
|
|
item.cells[arr.length+1].innerHTML='<INPUT type="button" class="add" onclick="AddDiagram(\''+name+'\')" value="Add">';
|
|
}
|
|
|
|
|
|
var Count=Math.floor(Data[name]);
|
|
item.cells[m+1].innerText=Count;
|
|
//item.visibility="visible";
|
|
|
|
if(StrFilter.length>0 && name.indexOf(StrFilter)==-1)
|
|
item.style="display:none";
|
|
else
|
|
item.style="";
|
|
item.Do=0;
|
|
}
|
|
}
|
|
|
|
if(0)
|
|
for(var i=1;i<rows.length;i++)
|
|
if(rows[i].Do===1)
|
|
for(var j=1;j<rows[i].cells.length-1;j++)
|
|
rows[i].cells[j].innerText="";
|
|
|
|
}
|
|
|
|
function AddDiagram(Name)
|
|
{
|
|
var Str=localStorage["DiagramArr"];
|
|
if(!Str|| Str==="undefined")
|
|
Str="[]";
|
|
var DiagramArr=JSON.parse(Str);
|
|
|
|
var Item={name:Name,text:Name,value:0,red:"#1c6bb6"};
|
|
|
|
AddDiagramToArr(DiagramArr,Item);
|
|
|
|
localStorage["DiagramArr"]=JSON.stringify(DiagramArr)
|
|
localStorage["ExternSetDiagramArr"]=1;
|
|
|
|
}
|
|
|
|
|
|
var bPause;
|
|
var StatMode;
|
|
function SetPause(SetMode)
|
|
{
|
|
if(SetMode===undefined)
|
|
{
|
|
bPause=!bPause;
|
|
}
|
|
else
|
|
{
|
|
bPause=SetMode;
|
|
}
|
|
var item = document.getElementById("idRun");
|
|
if(bPause)
|
|
item.value="Continue view";
|
|
else
|
|
item.value="Pause view";
|
|
}
|
|
|
|
function SetStatMode()
|
|
{
|
|
if(!StatMode)
|
|
StatMode=0;
|
|
StatMode=(StatMode+1)%3;
|
|
GetData("SetStatMode",StatMode,function (Data)
|
|
{
|
|
});
|
|
}
|
|
function ClearStat()
|
|
{
|
|
GetData("ClearStat",{},function (Data)
|
|
{
|
|
ClearTableStat(TabbleStat);
|
|
ClearTableStat(TableError);
|
|
});
|
|
}
|
|
function SetStatInfo(Data)
|
|
{
|
|
var item = document.getElementById("idStatInfo");
|
|
var button = document.getElementById("idStatButton");
|
|
StatMode=Data.STAT_MODE;
|
|
if(StatMode===1)
|
|
{
|
|
item.innerText=" =Stat ON=";
|
|
button.value="Start detail stat"
|
|
}
|
|
else
|
|
if(StatMode===2)
|
|
{
|
|
item.innerText=" =Stat detail ON=";
|
|
button.value="Stop stat"
|
|
}
|
|
else
|
|
{
|
|
item.innerText=" =Stat OFF=";
|
|
button.value="Start stat"
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//LIB
|
|
function GetStat()
|
|
{
|
|
if(bPause)
|
|
return;
|
|
GetData("GetAllCounters",{},function (Data)
|
|
{
|
|
SetResult(Data);
|
|
SetStatInfo(Data);
|
|
});
|
|
}
|
|
|
|
function OnSetFilter()
|
|
{
|
|
SetResult();
|
|
}
|
|
|
|
|
|
window.onload=function()
|
|
{
|
|
TabbleStat=document.getElementById("grid_stat");
|
|
TableError=document.getElementById("grid_error");
|
|
|
|
SetPause(0);
|
|
GetStat();
|
|
setInterval(GetStat,1000);
|
|
|
|
window.onkeydown = function (e)
|
|
{
|
|
if(e.keyCode===27)
|
|
{
|
|
window.close();
|
|
}
|
|
};
|
|
//document.body.className="univers "+localStorage["idSelStyle"];
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style type="text/css">
|
|
|
|
table
|
|
{
|
|
border-collapse: collapse;
|
|
}
|
|
.stat th, .stat td
|
|
{
|
|
border: 1px solid #000;
|
|
padding: 5px;
|
|
}
|
|
.stat td
|
|
{
|
|
width: 122px;
|
|
text-align: right;
|
|
}
|
|
.stat td:nth-child(1)
|
|
{
|
|
width: 220px;
|
|
}
|
|
.stat td:nth-child(5)
|
|
{
|
|
width: 50px;
|
|
}
|
|
.total
|
|
{
|
|
text-align: right;
|
|
font-weight: 600;
|
|
}
|
|
|
|
|
|
#topframeFind
|
|
{
|
|
z-index:1000;
|
|
position:fixed;
|
|
top:80px;
|
|
left:10px;
|
|
text-align: left;
|
|
width:1200px;
|
|
opacity: .7;
|
|
color: blue;
|
|
|
|
}
|
|
|
|
#topframe
|
|
{
|
|
z-index:1000;
|
|
position:absolute;
|
|
top:0px;
|
|
left:0px;
|
|
text-align: center;
|
|
width:600px;
|
|
}
|
|
|
|
#idRun, #idStatButton
|
|
{
|
|
width:100px;
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
|
|
<BR>
|
|
|
|
<div id="confirm_div" style="height: 0px;"></div>
|
|
|
|
<h2 align='center' >Performance counters</h2>
|
|
|
|
<DIV id="topframeFind">
|
|
Filter: <INPUT type="search" style="width: 292px" id="idFilter" autofocus onkeyup="OnSetFilter()" value="">
|
|
</DIV>
|
|
|
|
<BR>
|
|
|
|
<table id="grid_stat" class="stat">
|
|
<tr>
|
|
<th>Counters</th>
|
|
<th>10 sec</th>
|
|
<th>10 min</th>
|
|
<th>total</th>
|
|
<th>Diagr</th>
|
|
</tr>
|
|
<tr class="total">
|
|
<td>Total</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<BR>
|
|
|
|
<table id="grid_error" class="stat">
|
|
<tr>
|
|
<th>Errors</th>
|
|
<th>10 sec</th>
|
|
<th>10 min</th>
|
|
<th>total</th>
|
|
<th>Diagr</th>
|
|
</tr>
|
|
<tr class="total">
|
|
<td>Total</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
|
|
<div id="chart_div" style="width: 900px; height: 500px;"></div>
|
|
|
|
|
|
<DIV id="topframe">
|
|
<INPUT type="button" style="float:left" onclick="SetPause()" id="idRun">
|
|
<INPUT type="button" style="float:left" onclick="ClearStat()" id="idClearStat" value="Clear stat">
|
|
<INPUT type="button" style="float:left" onclick="SetStatMode()" id="idStatButton">
|
|
<DIV align='left'><B id="idStatInfo"></B></DIV>
|
|
</DIV>
|
|
|
|
|
|
</body>
|
|
</html>
|
|
|