Uptime
This commit is contained in:
parent
ed0c76f73c
commit
5ca66bd68a
7 changed files with 56 additions and 3 deletions
1
data/raw/test/uptime.raw
Normal file
1
data/raw/test/uptime.raw
Normal file
|
@ -0,0 +1 @@
|
|||
2019-01-01 01:00:00
|
7
index.js
7
index.js
|
@ -43,3 +43,10 @@ app.route(apiPrefix + '/cpuusage').get((req, res) => {
|
|||
});
|
||||
});
|
||||
|
||||
app.route(apiPrefix + '/uptime').get((req, res) => {
|
||||
fs.readFile(path.join(__dirname, 'data/json', 'uptime.json'), 'utf8', (err, json) => {
|
||||
if (err) { throw new Error(err); }
|
||||
res.json(JSON.parse(json));
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
let dataFromDate = require('./mkDataFromDate.js');
|
||||
let dataFromDiskspace = require('./mkDataFromDiskspace.js');
|
||||
let dataFromCPUUsage = require('./mkDataFromCPUUsage.js');
|
||||
let dataFromUptime = require('./mkDataFromUptime.js');
|
||||
|
||||
let isTestMode = process.argv[2] === '--test';
|
||||
|
||||
dataFromDate(isTestMode);
|
||||
dataFromDiskspace(isTestMode);
|
||||
dataFromCPUUsage(isTestMode);
|
||||
dataFromUptime(isTestMode);
|
||||
|
|
20
mkDataFromUptime.js
Normal file
20
mkDataFromUptime.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const moment = require('moment');
|
||||
|
||||
module.exports = async function(useTestData = false) {
|
||||
fs.readFile(path.join(__dirname, 'data/raw', useTestData ? 'test' : 'real', 'uptime.raw'), 'utf8', (err, uptime) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
let jsonString = JSON.stringify({
|
||||
uptime: moment(uptime, 'YYYY-MM-DD HH:mm:ss').format('hh:mm MM-DD-YYYY'),
|
||||
});
|
||||
|
||||
fs.writeFile(path.join(__dirname, 'data/json', 'uptime.json'), jsonString, err => {
|
||||
if (err) throw err;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
7
mkRaw.sh
7
mkRaw.sh
|
@ -11,4 +11,9 @@ echo "diskspace.raw updated"
|
|||
|
||||
touch data/raw/real/usage.raw
|
||||
top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{ split($1, vs, ","); v=vs[length(vs)]; sub("%", "", v); printf "%s%.1f%%\n", prefix, 100 - v }' > data/raw/real/cpuusage.raw
|
||||
echo "usage.raw updated"
|
||||
echo "cpuusage.raw updated"
|
||||
|
||||
touch data/raw/real/uptime.raw
|
||||
uptime -s > data/raw/real/uptime.raw
|
||||
echo "uptime.raw updated"
|
||||
|
||||
|
|
|
@ -12,11 +12,15 @@ new Vue({
|
|||
fetchingCPUUsage: true,
|
||||
cpuUsageNum: 0,
|
||||
cpuUsageStr: '',
|
||||
|
||||
fetchingUptime: true,
|
||||
uptime: '',
|
||||
},
|
||||
created() {
|
||||
this.fetchLastBuildDate();
|
||||
this.fetchDiskSpace();
|
||||
this.fetchCPUUsage();
|
||||
this.fetchUptime();
|
||||
},
|
||||
methods: {
|
||||
async fetchLastBuildDate() {
|
||||
|
@ -46,5 +50,13 @@ new Vue({
|
|||
this.fetchingCPUUsage = false;
|
||||
} catch (err) { throw new Error(err); }
|
||||
},
|
||||
async fetchUptime() {
|
||||
this.fetchingUptime = true;
|
||||
try {
|
||||
let { data } = await axios.get('/api/uptime');
|
||||
this.uptime = data.uptime;
|
||||
this.fetchingUptime = false;
|
||||
} catch (err) { throw new Error(err); }
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
|
@ -54,9 +54,15 @@
|
|||
<footer class="row">
|
||||
<section class="section">
|
||||
<small class="small">
|
||||
Last Built:
|
||||
Dashboard Built:
|
||||
<span v-if="fetchingLastBuildDate" class="load smallest"></span>
|
||||
<span v-else class="fadein">{{lastBuildDate}}</span>
|
||||
<em v-else class="fadein">{{lastBuildDate}}</em>
|
||||
</small>
|
||||
/
|
||||
<small class="small">
|
||||
Uptime:
|
||||
<span v-if="fetchingUptime" class="load smallest"></span>
|
||||
<em v-else class="fadein">{{uptime}}</em>
|
||||
</small>
|
||||
</section>
|
||||
</footer>
|
||||
|
|
Loading…
Add table
Reference in a new issue