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 ( ) = > {
2021-09-25 23:55:19 +02:00
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 (
2021-09-25 23:55:19 +02:00
` [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
}