
Ein sehr einfacher Monitor für das integrierte os , fs -Module in node.js.
Ermöglicht Ihnen einige OS -Parameter wie der freie Speicher, den verfügbaren Speicher, den durchschnittlichen oder freien Speicherplatz.
Unter der MIT -Lizenz veröffentlicht.
So installieren Sie die neueste stabile Version von os-monitor :
npm install os-monitor
Wenn Sie eine alte Version von Node.js (älter als V18.15.x) verwenden, benötigen Sie möglicherweise die Legacy-Version (1.x) von os-monitor . Es unterstützt node.js zurück zu v0.10.x:
npm install os-monitor@legacy
const { Monitor } = require ( "os-monitor" ) ;
const monitor = new Monitor ( ) ;
// basic usage
monitor . start ( ) ;
// more advanced usage with configs.
monitor . start ( { delay : 3000 // interval in ms between monitor cycles
, freemem : 1000000000 // freemem under which event 'freemem' is triggered
, uptime : 1000000 // number of secs over which event 'uptime' is triggered
, diskfree : {
'/' : 100000 , // number of free blocks under which event 'diskfree' is triggered
'/home' : 100000
}
, critical1 : 0.7 // loadavg1 over which event 'loadavg1' is triggered
, critical5 : 0.7 // loadavg5 over which event 'loadavg5' is triggered
, critical15 : 0.7 // loadavg15 over which event 'loadavg15' is triggered
, silent : false // set true to mute event 'monitor'
, stream : false // set true to enable the monitor as a Readable Stream
, immediate : false // set true to execute a monitor cycle at start()
} ) ;
// define handler that will always fire every cycle
monitor . on ( 'monitor' , ( event ) => {
console . log ( event . type , 'This event always happens on each monitor cycle!' ) ;
} ) ;
// define handler for a too high 1-minute load average
monitor . on ( 'loadavg1' , ( event ) => {
console . log ( event . type , 'Load average is exceptionally high!' ) ;
} ) ;
// define handler for a too low free memory
monitor . on ( 'freemem' , ( event ) => {
console . log ( event . type , 'Free memory is very low!' ) ;
} ) ;
// define a throttled handler
monitor . throttle ( 'loadavg5' , ( event ) => {
// whatever is done here will not happen
// more than once every 5 minutes(300000 ms)
} , monitor . minutes ( 5 ) ) ;
// change config while monitor is running
monitor . config ( {
freemem : 0.3 // alarm when 30% or less free memory available
} ) ;
// stop monitor
monitor . stop ( ) ;
// check whether monitor is running or not
monitor . isRunning ( ) ; // -> true / false
// use as readable stream
monitor . start ( { stream : true } ) . pipe ( process . stdout ) ;Verzögerung der Millisekunden zwischen jedem Monitor -Zyklus. Standard: 3000
Die Menge an Speicher in Bytes, unter denen das Ereignis 'Freemem' ausgelöst wird. Kann auch ein Prozentsatz des Gesamtspeichers sein. Standard: 0
Anzahl der Sekunden, über die das Ereignis "Betriebszeit" ausgelöst wird. Standard: undefiniert
Objekt, das Werte für kostenlose Blöcke enthält, für bestimmte Dateisystempfade, unter denen das Ereignis „diskfree“ ausgelöst wird. Unterstützt von node.js v18.15.x und später. (Ref.) Standard: {}
Wert von 1 Minute Lastdurchschnitt über welcher Ereignis 'loadAvg1' wird ausgelöst. Standard: os.cpus (). Länge
(Ein unix-spezifisches Konzept, der Lastdurchschnitt ist ein Maß für die Systemaktivität, das vom Betriebssystem berechnet und als Bruchnummer ausgedrückt wird. Als Faustregel sollte der Ladedurchschnitt idealerweise geringer sein als die Anzahl der logischen CPUs im System. Ref.: Http://nodejs.org/api/os.html#os_os_os_os_os_os_os_os_ostavg))
Wert von 5 Minuten Lastdurchschnitt über welcher Ereignis 'Loadavg5' ausgelöst wird. Standard: os.cpus (). Länge
Wert von 15 Minuten Lastdurchschnitt über welcher Ereignis 'Loadavg15' wird ausgelöst. Standard: os.cpus (). Länge
Setzen Sie dem stummen Ereignis "Monitor". Standard: Falsch
Stellen Sie den Monitor als lesbarer Stream ein, um den Monitor zu aktivieren. Standard: Falsch
Setzen Sie sich an, um einen Monitorzyklus bei start () auszuführen. Standard: Falsch
Die Eigenschaft monitor.version enthält die os-monitor -Versionszeichenfolge.
Startet den Monitor. Akzeptiert ein optionales Optionsobjekt.
Stoppt den Monitor.
Überprüft, ob der Monitor ausgeführt wird oder nicht; Gibt einen Booleschen zurück.
Akzeptiert ein optionales Optionsobjekt und aktualisiert die Monitor -Konfiguration. Gibt immer Monitor -Konfigurationsoptionen zurück.
RESSET SETSEN Sie die Konfiguration auf seine Standardwerte.
Fügt einen Hörer für den angegebenen Ereignisart hinzu. Unterstützte Ereignisse sind: "Monitor", "Uptime", "Freemem", "diskfree", "lastavg1", "lastavg5", "lastavg15", "start", "stop", "config", "zurücksetzen", "Zerstören".
Fügt einen einmaligen Hörer für den angegebenen Ereignisart hinzu. Dieser Hörer wird erst beim nächsten Mal aufgerufen, wenn das Ereignis abgefeuert wird, wonach es entfernt wird.
Fügt einen gedrosselten Zuhörer hinzu. Der gedrosselte Zuhörer wird nicht mehr als einmal in jeder Verzögerung von Millisekunden ausgeführt.
Entfernt einen gedrosselten Hörer, der zuvor mit .throttle() hinzugefügt wurde. handler muss die ursprüngliche Funktion sein.
Gibt ein Versprechen zurück, das mit einem Ereignisobjekt auflöst, wenn eventType ausgelöst wird.
Stoppt und deaktiviert den Monitor dauerhaft.
Komfortmethoden, um die richtige Menge an Millisekunden zu erhalten.
monitor . seconds ( 10 ) ; // -> 10000 ms
monitor . minutes ( 5 ) ; // -> 300000 ms
monitor . hours ( 1 ) ; // -> 3600000 ms
monitor . days ( 1 ) ; // -> 86400000 ms
// start with a delay of 5000 ms
monitor . start ( { delay : monitor . seconds ( 5 ) } ) ;Komfortmethode, um die richtige Menge an Dateisystemblöcken zu erhalten.
monitor . blocks ( 100000000 , 4096 ) ; // -> 24415 blocks
// start by observing file system path `/filesystem`
monitor . start ( {
diskfree : {
'/filesystem' : monitor . blocks ( 100000000 , 4096 )
}
} ) ; Das bereitgestellte Ereignisobjekt gibt einige nützliche Informationen:
{
"type": "monitor", // event type
"loadavg": [
0.4599609375,
0.53076171875,
0.4990234375
], // load average values for 1, 5, 15 minutes
"uptime": 1614056, // os uptime in seconds
"freemem": 241262592, // free memory available in bytes
"totalmem": 2147483648, // total memory available in bytes
"diskfree": {
"/": 25786328,
"/home": 12786329
}, // available blocks per file system path, if any config was passed for 'diskfree' event
"timestamp": 1394766898 // UNIX Timestamp
}
Alle unterstützten Ereignisse sind: "Monitor", "Uptime", "Freemem", "diskfree", "lastavg1", "lastavg5", "lastavg15", "start", "stop", "config", "zurücksetzen", "Zerstören". Beachten Sie, dass os-monitor eine Instanz von EventEmitter ist .
Ereignisse API -Dokumente: nodejs.org/api/events
os-monitor kann auch als lesbarer Stream verwendet werden.
monitor.start({ stream: true });
// write to STDOUT
monitor.pipe(process.stdout);
// write to a file
let fs = require('fs'),
logFile = fs.createWriteStream('/tmp/log.txt', {flags: 'a'});
monitor.pipe(logFile);
os-monitor unterstützt Promise, Async/Assait: Verwenden von .when(eventType) ein Versprechen zurückgibt.
monitor.when('freemem').then(event => {
// ...
});
async function callback() {
let event = await monitor.when('uptime');
// ...
}
Benötigen Sie gleichzeitige Monitorinstanzen? Mit der Monitor -Klasse können mehrere Instanzen erstellt werden:
const { Monitor } = require('os-monitor');
let monitor1 = new Monitor();
let monitor2 = new Monitor();
let monitor3 = new Monitor();
os-monitor wird unter der MIT-Lizenz veröffentlicht.
100% frei: os-monitor kann sowohl in proprietären als auch in offenen Source-Projekten frei verwendet werden.
Eine Zuordnung ist erforderlich: Sie müssen den Namen des Autors und die Lizenzinformationen in einem verteilten Code beibehalten. Diese Elemente müssen nicht benutzergerichtet sein und können innerhalb der Codebasis bleiben.