1
0
Fork 0
This commit is contained in:
Joe Wroten 2019-05-17 17:56:41 -05:00
parent ed0c76f73c
commit 5ca66bd68a
7 changed files with 56 additions and 3 deletions

1
data/raw/test/uptime.raw Normal file
View file

@ -0,0 +1 @@
2019-01-01 01:00:00

View file

@ -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));
});
});

View file

@ -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
View 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;
});
});
}

View file

@ -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"

View file

@ -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); }
},
},
});

View file

@ -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>