104 lines
4.5 KiB
HTML
104 lines
4.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
|
<link href="/jscss/style.css" rel="stylesheet" type="text/css" />
|
|
<script type="text/javascript" charset="utf-8" src="/jscss/theme.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="container">
|
|
<form class="search" onsubmit="search(this);return false;">
|
|
<div>
|
|
<div class="sinps">
|
|
<div class="ciy-form inline">
|
|
<label data-lang>指标项</label>
|
|
<div>
|
|
<input type="text" name="name" style="width:8em;">
|
|
</div>
|
|
</div>
|
|
<div class="ciy-form inline">
|
|
<label data-lang>说明</label>
|
|
<div>
|
|
<input type="text" name="help" style="width:8em;">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sbtns">
|
|
<button data-lang class="btn" type="submit">查询</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<div class="table">
|
|
<div class="topbtn flex flex-center" style="gap:1em;">
|
|
<div><button data-lang class="btn" onclick="callps();">瞬时计算</button></div>
|
|
<div class="ctime txt-right" style="width:5em;">0 s</div>
|
|
<div class="cmain"></div>
|
|
</div>
|
|
<div class="loading col-24">Loading...</div>
|
|
<div class="list"></div>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript" src="/jscss/ciy.js"></script>
|
|
<script type="text/javascript" src="/jscss/ciytable.js"></script>
|
|
<script type="text/javascript" src="../common.js"></script>
|
|
<script type="text/javascript">
|
|
'use strict';
|
|
var table;
|
|
var Glob = {};
|
|
ciyfn.pageload(function () {
|
|
table = new ciyclass.table({ dom: '.table' });
|
|
ciyfn.callfunc('init', {}, function (json) {
|
|
Glob.data = json;
|
|
if (!Glob.first)
|
|
Glob.first = json.stats;
|
|
fill();
|
|
Glob.ftime = tostamp();
|
|
setInterval(function () {
|
|
$5('.ctime').html((tostamp() - Glob.ftime) + ' s');
|
|
}, 1000);
|
|
});
|
|
});
|
|
function callps(dom) {
|
|
ciyfn.callfunc('init', {}, function (json) {
|
|
var Questions = json.stats.Questions.value - Glob.first.Questions.value;
|
|
var Com_commit = json.stats.Com_commit.value - Glob.first.Com_commit.value;
|
|
var Com_rollback = json.stats.Com_rollback.value - Glob.first.Com_rollback.value;
|
|
var sec = tostamp() - Glob.ftime;
|
|
var qps = Questions / sec;
|
|
var tps = (Com_commit + Com_rollback) / sec;
|
|
$5('.cmain').html('QPS: <kbd>' + qps.toFixed(2) + '</kbd>, TPS: <kbd>' + tps.toFixed(2) + '</kbd>, Sec:' + sec + 's');
|
|
});
|
|
// $uptime = toint($status['Uptime']['value']);
|
|
// if ($uptime > 0) {
|
|
// $ret['qps'] = (float)$status['Questions']['value'] / $uptime;
|
|
// $ret['tps'] = (toint($status['Com_commit']['value']) + toint($status['Com_rollback']['value'])) / $uptime;
|
|
// }
|
|
}
|
|
function search(dom) {
|
|
Glob.name = $5('[name=name]', dom).val().toLowerCase();
|
|
Glob.help = $5('[name=help]', dom).val().toLowerCase();
|
|
fill();
|
|
}
|
|
function fill() {
|
|
var html = "<table><thead><tr><th class='lang'>指标项</th><th class='lang'>数值</th><th class='lang'>说明</th></tr></thead>";
|
|
for (var i in Glob.data.stats) {
|
|
if (Glob.name) {
|
|
if (i.toLowerCase().indexOf(Glob.name) == -1)
|
|
continue;
|
|
}
|
|
if (Glob.help) {
|
|
if (Glob.data.stats[i].help.toLowerCase().indexOf(Glob.help) == -1)
|
|
continue;
|
|
}
|
|
html += '<tr><td><div>' + i + '</div></td><td><div style="text-align:right">' + Glob.data.stats[i].value + '</div></td><td><div>' + Glob.data.stats[i].help + '</div></td></tr>';
|
|
}
|
|
table.filltable(html);
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html> |