2021-08-14 23:15:19 +02:00
import os from "os" ;
import osu from "node-os-utils" ;
2021-12-25 12:09:48 +01:00
import { red } from "picocolors" ;
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 ( ) } ` ) ;
2021-11-11 09:31:03 +01:00
console . log ( ` [Process] running with PID: ${ process . pid } ` ) ;
2021-10-10 11:13:51 +02:00
if ( process . getuid && process . getuid ( ) === 0 ) {
2021-10-10 11:02:25 +02:00
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
2021-10-18 22:55:54 +02:00
// TODO: node-os-utils might have a memory leak, more investigation needed
// TODO: doesn't work if spawned with multiple threads
// setInterval(async () => {
// const [cpuUsed, memory, network] = await Promise.all([
// osu.cpu.usage(),
// osu.mem.info(),
// osu.netstat.inOut(),
// ]);
// var networkUsage = "";
// if (typeof network === "object") {
// networkUsage = `| [Network]: in ${network.total.inputMb}mb | out ${network.total.outputMb}mb`;
// }
2021-08-14 23:15:19 +02:00
2021-10-18 22:55:54 +02:00
// console.log(
// `[CPU] ${cpuUsed.toPrecision(3)}% | [Memory] ${Math.round(
// process.memoryUsage().rss / 1024 / 1024
// )}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}`
// );
// }, 1000 * 60 * 5);
2021-08-14 23:15:19 +02:00
}