
شاشة بسيطة للغاية لنظام os المدمج ، وحدات fs في Node.js.
يتيح لك مراقبة بعض معلمات نظام التشغيل ، مثل الذاكرة المجانية المتوفرة أو متوسط تحميل مساحة القرص الحرة.
صدر تحت رخصة معهد ماساتشوستس للتكنولوجيا.
لتثبيت أحدث إصدار مستقر من os-monitor :
npm install os-monitor
إذا كنت تستخدم إصدارًا قديمًا من Node.js (أقدم من V18.15.x) ، فقد تحتاج إلى الإصدار القديم (1.x) من os-monitor ؛ وهو يدعم node.js مرة أخرى إلى 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 ) ;التأخير في مللي ثانية بين كل دورة شاشة. الافتراضي: 3000
يتم تشغيل كمية الذاكرة في البايتات التي بموجبها حدث "Freemem". يمكن أن تكون أيضا نسبة من إجمالي الذاكرة. الافتراضي: 0
عدد الثواني التي يتم حولها "وقت التشغيل" الذي يتم تشغيله. الافتراضي: غير محدد
الكائن الذي يحتوي على قيم كتل مجانية ، لمسارات نظام الملفات المحددة ، والتي بموجبها يتم تشغيل "Diskfree". مدعوم من node.js v18.15.x ثم في وقت لاحق. (المرجع) الافتراضي: {}
قيمة الحمل لمدة دقيقة واحدة يتم تشغيل حدث "loadavg1". الافتراضي: OS.CPUS (). الطول
(مفهوم خاص بـ UNIX ، متوسط الحمل هو مقياس لنشاط النظام ، يحسبه نظام التشغيل والتعبير عنه كرقم كسري. كقاعدة عامة ، يجب أن يكون متوسط الحمل أقل من عدد وحدات المعالجة المركزية المنطقية في النظام. المرجع:
قيمة 5 دقائق التحميل المتوسط الذي يتم تشغيل حدث "loadavg5". الافتراضي: OS.CPUS (). الطول
قيمة 15 دقيقة تحميل متوسط الذي يتم تشغيل "loadavg15". الافتراضي: OS.CPUS (). الطول
اضبط الحدث "شاشة" كتم الصوت. الافتراضي: خطأ
اضبط على تمكين الشاشة كدفق قابل للقراءة. الافتراضي: خطأ
اضبط صحيحًا لتنفيذ دورة الشاشة في Start (). الافتراضي: خطأ
تحتوي خاصية monitor.version على سلسلة إصدار os-monitor .
يبدأ الشاشة. يقبل كائن الخيارات الاختيارية.
توقف الشاشة.
يتحقق ما إذا كانت الشاشة قيد التشغيل أم لا ؛ يعيد منطقية.
يقبل كائن الخيارات الاختيارية والتحديثات Config Config. تُرجع دائمًا خيارات تكوين الشاشة.
إعادة تعيين مراقبة التكوين إلى قيمها الافتراضية.
يضيف مستمعًا لنوع الحدث المحدد. الأحداث المدعومة هي: "مراقبة" ، "وقت التشغيل" ، "Freemem" ، "Diskfree" ، "loadavg1" ، "loadavg5" ، "loadavg15" ، "start" ، "stop" ، "config" ، "reset" ، "تدمير".
يضيف مستمع لمرة واحدة لنوع الحدث المحدد. يتم استدعاء هذا المستمع فقط في المرة القادمة التي يتم فيها إطلاق الحدث ، وبعد ذلك تتم إزالته.
يضيف مستمعًا مخنوقًا. لن يتم تنفيذ المستمع المخنوق أكثر من مرة واحدة كل ميلي ثانية.
يزيل مستمعًا خنقًا تمت إضافته مسبقًا باستخدام .throttle() . يجب أن يكون handler الوظيفة الأصلية.
يعيد وعدًا يحل مع كائن حدث عند تشغيل eventType .
يتوقف بشكل دائم وتعطيل الشاشة.
طرق الراحة للحصول على الكمية المناسبة من المللي ثانية.
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 ) } ) ;طريقة الراحة للحصول على الكمية المناسبة من كتل نظام الملفات.
monitor . blocks ( 100000000 , 4096 ) ; // -> 24415 blocks
// start by observing file system path `/filesystem`
monitor . start ( {
diskfree : {
'/filesystem' : monitor . blocks ( 100000000 , 4096 )
}
} ) ; هناك بعض المعلومات المفيدة في كائن الحدث المقدم:
{
"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
}
جميع الأحداث المدعومة هي: "الشاشة" ، "وقت التشغيل" ، "Freemem" ، "Diskfree" ، "loadavg1" ، "loadavg5" ، "loadavg15" ، "start" ، "stop" ، "config" ، "Reset" ، "Dorting". لاحظ أن os-monitor هو مثيل لـ EventEmitter .
أحداث API مستندات: nodejs.org/api/events
يمكن أيضًا استخدام os-monitor كدفق قابل للقراءة.
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 الوعد ، Async/في انتظار: استخدام .when(eventType)
monitor.when('freemem').then(event => {
// ...
});
async function callback() {
let event = await monitor.when('uptime');
// ...
}
هل تحتاج إلى مثيلات مراقبة متزامنة؟ يمكن إنشاء مثيلات متعددة باستخدام فئة Monitor :
const { Monitor } = require('os-monitor');
let monitor1 = new Monitor();
let monitor2 = new Monitor();
let monitor3 = new Monitor();
يتم إصدار os-monitor بموجب ترخيص MIT.
100 ٪ مجانًا: يمكن استخدام os-monitor بحرية في كل من مشاريع الملكية والمصادر المفتوحة.
الإسناد مطلوب: يجب عليك الاحتفاظ باسم المؤلف ومعلومات الترخيص في أي رمز موزع. لا تحتاج هذه العناصر إلى مواجهة المستخدم ويمكن أن تظل داخل قاعدة الشفرة.