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 dataFromDate = require('./mkDataFromDate.js');
|
||||||
let dataFromDiskspace = require('./mkDataFromDiskspace.js');
|
let dataFromDiskspace = require('./mkDataFromDiskspace.js');
|
||||||
let dataFromCPUUsage = require('./mkDataFromCPUUsage.js');
|
let dataFromCPUUsage = require('./mkDataFromCPUUsage.js');
|
||||||
|
let dataFromUptime = require('./mkDataFromUptime.js');
|
||||||
|
|
||||||
let isTestMode = process.argv[2] === '--test';
|
let isTestMode = process.argv[2] === '--test';
|
||||||
|
|
||||||
dataFromDate(isTestMode);
|
dataFromDate(isTestMode);
|
||||||
dataFromDiskspace(isTestMode);
|
dataFromDiskspace(isTestMode);
|
||||||
dataFromCPUUsage(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
|
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
|
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,
|
fetchingCPUUsage: true,
|
||||||
cpuUsageNum: 0,
|
cpuUsageNum: 0,
|
||||||
cpuUsageStr: '',
|
cpuUsageStr: '',
|
||||||
|
|
||||||
|
fetchingUptime: true,
|
||||||
|
uptime: '',
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.fetchLastBuildDate();
|
this.fetchLastBuildDate();
|
||||||
this.fetchDiskSpace();
|
this.fetchDiskSpace();
|
||||||
this.fetchCPUUsage();
|
this.fetchCPUUsage();
|
||||||
|
this.fetchUptime();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async fetchLastBuildDate() {
|
async fetchLastBuildDate() {
|
||||||
|
@ -46,5 +50,13 @@ new Vue({
|
||||||
this.fetchingCPUUsage = false;
|
this.fetchingCPUUsage = false;
|
||||||
} catch (err) { throw new Error(err); }
|
} 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">
|
<footer class="row">
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<small class="small">
|
<small class="small">
|
||||||
Last Built:
|
Dashboard Built:
|
||||||
<span v-if="fetchingLastBuildDate" class="load smallest"></span>
|
<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>
|
</small>
|
||||||
</section>
|
</section>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
Loading…
Add table
Reference in a new issue