Merge pull request #849 from Fenny/master

📈 fix response time
This commit is contained in:
Fenny 2020-09-29 04:03:38 +02:00 committed by GitHub
commit d3e53e90f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 128 additions and 110 deletions

View File

@ -6,8 +6,11 @@ var index = []byte(`<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0/dist/Chart.bundle.min.js"></script>
<link
href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap"
rel="stylesheet">
<script
src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0/dist/Chart.bundle.min.js"></script>
<title>Fiber Monitor</title>
<style>
body {
@ -72,7 +75,7 @@ var index = []byte(`<!DOCTYPE html>
<body>
<section class="wrapper">
<div class="title">
<h1>Fiber Status Monitor</h1>
<h1>Fiber Monitor</h1>
</div>
<section class="charts">
@ -204,18 +207,18 @@ var index = []byte(`<!DOCTYPE html>
// })
// }
function update(json) {
function update(json, rtime) {
cpu = json.pid.cpu.toFixed(1);
cpuOS = json.os.cpu.toFixed(1);
cpuMetric.innerHTML = cpu + '% <span>' + cpuOS + '%</span>';
ramMetric.innerHTML = formatBytes(json.pid.ram) + ' <span>' + formatBytes(json.os.ram) + '</span>';
rtimeMetric.innerHTML = json.rtime + 'ms';
rtimeMetric.innerHTML = rtime + 'ms';
connsMetric.innerHTML = json.conns;
cpuChart.data.datasets[0].data.push(cpu);
ramChart.data.datasets[0].data.push((json.pid.ram / 1e6).toFixed(2));
rtimeChart.data.datasets[0].data.push(json.rtime);
rtimeChart.data.datasets[0].data.push(rtime);
connsChart.data.datasets[0].data.push(json.conns);
const timestamp = new Date().getTime();
@ -235,14 +238,21 @@ var index = []byte(`<!DOCTYPE html>
}
function fetchJSON() {
var t1 = ''
var t0 = performance.now()
fetch(window.location.href, {
headers: {
'Accept': 'application/json'
},
credentials: 'same-origin'
})
.then(res => res.json())
.then(update)
.then(res => {
t1 = performance.now()
return res.json()
})
.then(res => {
update(res, Math.round(performance.now() - t0))
})
.catch(console.error);
setTimeout(fetchJSON, 750)
}

View File

@ -4,8 +4,11 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0/dist/Chart.bundle.min.js"></script>
<link
href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap"
rel="stylesheet">
<script
src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0/dist/Chart.bundle.min.js"></script>
<title>Fiber Monitor</title>
<style>
body {
@ -70,7 +73,7 @@
<body>
<section class="wrapper">
<div class="title">
<h1>Fiber Status Monitor</h1>
<h1>Fiber Monitor</h1>
</div>
<section class="charts">
@ -202,18 +205,18 @@
// })
// }
function update(json) {
function update(json, rtime) {
cpu = json.pid.cpu.toFixed(1);
cpuOS = json.os.cpu.toFixed(1);
cpuMetric.innerHTML = cpu + '% <span>' + cpuOS + '%</span>';
ramMetric.innerHTML = formatBytes(json.pid.ram) + ' <span>' + formatBytes(json.os.ram) + '</span>';
rtimeMetric.innerHTML = json.rtime + 'ms';
rtimeMetric.innerHTML = rtime + 'ms';
connsMetric.innerHTML = json.conns;
cpuChart.data.datasets[0].data.push(cpu);
ramChart.data.datasets[0].data.push((json.pid.ram / 1e6).toFixed(2));
rtimeChart.data.datasets[0].data.push(json.rtime);
rtimeChart.data.datasets[0].data.push(rtime);
connsChart.data.datasets[0].data.push(json.conns);
const timestamp = new Date().getTime();
@ -233,14 +236,21 @@
}
function fetchJSON() {
var t1 = ''
var t0 = performance.now()
fetch(window.location.href, {
headers: {
'Accept': 'application/json'
},
credentials: 'same-origin'
})
.then(res => res.json())
.then(update)
.then(res => {
t1 = performance.now()
return res.json()
})
.then(res => {
update(res, Match.Round(performance.now() - t0))
})
.catch(console.error);
setTimeout(fetchJSON, 750)
}

View File

@ -14,7 +14,6 @@ import (
type stats struct {
PID statsPID `json:"pid"`
OS statsOS `json:"os"`
Rtime int64 `json:"rtime"`
Conns uint32 `json:"conns"`
}
@ -76,7 +75,6 @@ func New() fiber.Handler {
data.PID.RAM = monitPidRam
data.OS.CPU = monitOsCpu
data.OS.RAM = monitOsRam
data.Rtime = (time.Now().UnixNano() - c.Context().Time().UnixNano()) / 1000000
data.Conns = c.App().Server().GetCurrentConcurrency()
mutex.Unlock()
return c.Status(fiber.StatusOK).JSON(data)