diff --git a/package.json b/package.json index c903966781..4202c592ef 100644 --- a/package.json +++ b/package.json @@ -159,7 +159,6 @@ "nprogress": "0.2.0", "object-assign-deep": "0.4.0", "on-build-webpack": "0.1.0", - "os-utils": "0.0.14", "parse5": "5.0.0", "portscanner": "2.2.0", "progress-bar-webpack-plugin": "1.11.0", @@ -187,6 +186,7 @@ "stylus": "0.54.5", "stylus-loader": "3.0.2", "summaly": "2.0.6", + "systeminformation": "3.42.4", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", "tmp": "0.0.33", diff --git a/src/daemons/server-stats.ts b/src/daemons/server-stats.ts index 5c793c6624..a3351ac32f 100644 --- a/src/daemons/server-stats.ts +++ b/src/daemons/server-stats.ts @@ -1,5 +1,5 @@ import * as os from 'os'; -const osUtils = require('os-utils'); +const sysUtils = require('systeminformation'); import * as diskusage from 'diskusage'; import Xev from 'xev'; @@ -18,25 +18,59 @@ export default function() { }); async function tick() { - osUtils.cpuUsage((cpuUsage: number) => { - const disk = diskusage.checkSync(os.platform() == 'win32' ? 'c:' : '/'); - const stats = { - cpu_usage: cpuUsage, - mem: { - total: os.totalmem(), - free: os.freemem() - }, - disk, - os_uptime: os.uptime(), - process_uptime: process.uptime() - }; - ev.emit('serverStats', stats); - log.push(stats); - if (log.length > 50) log.shift(); - }); + const cpu = await cpuUsage(); + const freemem = await freeMem(); + const totalmem = await totalMem(); + const disk = diskusage.checkSync(os.platform() == 'win32' ? 'c:' : '/'); + + const stats = { + cpu_usage: cpu, + mem: { + total: totalmem, + free: freemem + }, + disk, + os_uptime: os.uptime(), + process_uptime: process.uptime() + }; + ev.emit('serverStats', stats); + log.push(stats); } tick(); setInterval(tick, interval); } + +// CPU STAT +async function cpuUsage() { + try { + const data = await sysUtils.currentLoad(); + return Math.floor(data.currentload); + } + catch(error) { + console.error(error); + } +} + +// MEMORY(excl buffer + cache) STAT +async function freeMem() { + try { + const data = await sysUtils.mem(); + return data.active; + } + catch(error) { + console.error(error); + } +} + +// TOTAL MEMORY STAT +async function totalMem() { + try { + const data = await sysUtils.mem(); + return data.total; + } + catch(error) { + console.error(error); + } +} \ No newline at end of file