1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-06 19:02:33 +01:00
server/bundle/src/stats.ts

36 lines
1.1 KiB
TypeScript
Raw Normal View History

2021-08-14 23:15:19 +02:00
import os from "os";
import osu from "node-os-utils";
2021-10-10 11:02:25 +02:00
import { red } from "nanocolors";
2021-08-14 23:15:19 +02:00
export function initStats() {
2021-08-17 22:42:16 +02:00
console.log(`[Path] running in ${__dirname}`);
2021-08-14 23:15:19 +02:00
console.log(`[CPU] ${osu.cpu.model()} Cores x${osu.cpu.count()}`);
console.log(`[System] ${os.platform()} ${os.arch()}`);
console.log(`[Process] running with pid: ${process.pid}`);
2021-10-10 11:02:25 +02:00
if (process.getuid() === 0) {
console.warn(
red(
`[Process] Warning fosscord is running as root, this highly discouraged and might expose your system vulnerable to attackers. Please run fosscord as a user without root privileges.`
)
);
}
2021-08-14 23:15:19 +02:00
setInterval(async () => {
const [cpuUsed, memory, network] = await Promise.all([
osu.cpu.usage(),
osu.mem.info(),
osu.netstat.inOut(),
]);
2021-08-17 20:37:13 +02:00
var networkUsage = "";
2021-08-14 23:15:19 +02:00
if (typeof network === "object") {
2021-08-17 20:37:13 +02:00
networkUsage = `| [Network]: in ${network.total.inputMb}mb | out ${network.total.outputMb}mb`;
2021-08-14 23:15:19 +02:00
}
console.log(
`[CPU] ${cpuUsed.toPrecision(3)}% | [Memory] ${Math.round(
2021-08-14 23:15:19 +02:00
process.memoryUsage().rss / 1024 / 1024
2021-08-17 20:37:13 +02:00
)}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}`
2021-08-14 23:15:19 +02:00
);
2021-10-10 11:02:25 +02:00
}, 1000 * 10);
2021-08-14 23:15:19 +02:00
}