diff options
author | Minteck <contact@minteck.org> | 2022-05-24 23:06:46 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-05-24 23:06:46 +0200 |
commit | 94fea37d627a7f11a67d4eb472300dfa5abaafae (patch) | |
tree | 1729703dbc173ec7ffd574aacb24434d4cb96e38 /refresh.js | |
parent | a06bd771ff4ea43841edb8cba97df21258a9912b (diff) | |
download | vaportrail-94fea37d627a7f11a67d4eb472300dfa5abaafae.tar.gz vaportrail-94fea37d627a7f11a67d4eb472300dfa5abaafae.tar.bz2 vaportrail-94fea37d627a7f11a67d4eb472300dfa5abaafae.zip |
Pair programming with @CloudburstSys
Diffstat (limited to 'refresh.js')
-rw-r--r-- | refresh.js | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/refresh.js b/refresh.js deleted file mode 100644 index 212a4cb..0000000 --- a/refresh.js +++ /dev/null @@ -1,87 +0,0 @@ -const dns = require("dns"); -const superagent = require("superagent"); - -function resolveDNSAsync(domain) { - return new Promise((res, rej) => { - if (!/([\--z]+\.)?([\--z]+)\.([A-z]+)/g.test(domain)) return rej("Not a valid domain"); - - const options = { - family: 4, - hints: dns.ADDRCONFIG | dns.V4MAPPED - }; - dns.lookup(domain, options, (err, address, family) => { - if (err) return rej(err); - res(address); - }); - }); -} - -function roundToTwo(num) { - return +(Math.round(num + "e+2") + "e-2"); -} - -module.exports = () => { - // Code entered here will be run every 5 minutes - return new Promise(async (res, rej) => { - let servers = { - canterlot: [await resolveDNSAsync("canterlot.equestria.dev"), 52937], - ponyville: [await resolveDNSAsync("ponyville-ipv4.equestria.dev"), 52937], - bridlewood: [await resolveDNSAsync("bridlewood.equestria.dev"), 52937], - zephyrheights: [await resolveDNSAsync("zephyrheights-ipv4.equestria.dev"), 52938], - maretimebay: [await resolveDNSAsync("maretimebay-ipv4.equestria.dev"), 52937] - } - - let stats = {} - - for (let key in Object.keys(servers)) { - key = Object.keys(servers)[key]; - let status = { - online: null, - cpu: null, - memory: null, - os: null, - uptime: null - } - - superagent.get(`http://${servers[key][0]}:${servers[key][1]}/json`) - .timeout({ - response: 5000, - }) - .then(data => data = data.body) - .then(data => { - status.online = true; - status.cpu = data.cpu; - status.cpu.load = Math.floor(data.cpu.load * 100); - status.memory = data.memory; - status.memory.swap.used = roundToTwo(data.memory.swap.used / 1073741824); - status.memory.swap.free = roundToTwo(data.memory.swap.free / 1073741824); - status.memory.swap.total = roundToTwo(data.memory.swap.total / 1073741824); - status.memory.physical.used = roundToTwo(data.memory.physical.used / 1073741824); - status.memory.physical.free = roundToTwo(data.memory.physical.free / 1073741824); - status.memory.physical.total = roundToTwo(data.memory.physical.total / 1073741824); - status.os = data.os; - status.uptime = data.uptime; - }) - .catch(reason => { - if (reason.timeout) { - // We timed out. - status.online = false; - } else { - if(reason.code == "ECONNREFUSED") { - status.online = false; - console.warn(`Server ${key} refused our connection. `) - } else { - console.error(reason); - } - } - }) - .finally(() => { - stats[key] = status; - - if(Object.keys(stats).length == Object.keys(servers).length) { - res(stats); - } - }); - } - }); -} |