
จอภาพที่ง่ายมากสำหรับ os ปฏิบัติการในตัวโมดูล fs ใน Node.js
ช่วยให้คุณสามารถสังเกตเห็นพารามิเตอร์ระบบปฏิบัติการบางอย่างเช่นหน่วยความจำฟรีโหลดพื้นที่เฉลี่ยหรือพื้นที่ดิสก์ฟรี
ปล่อยภายใต้ใบอนุญาต MIT
ในการติดตั้ง 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
จำนวนวินาทีที่เหตุการณ์ 'uptime' ถูกเรียกใช้ ค่าเริ่มต้น: ไม่ได้กำหนด
วัตถุที่มีค่าบล็อกฟรีสำหรับเส้นทางระบบไฟล์ที่กำหนดภายใต้เหตุการณ์ 'diskfree' ที่ถูกเรียกใช้ รองรับจาก node.js v18.15.x และใหม่กว่า (อ้างอิง) ค่าเริ่มต้น: {}
ค่าเฉลี่ยโหลดเฉลี่ย 1 นาทีซึ่งเหตุการณ์ 'loadavg1' จะถูกเรียกใช้ ค่าเริ่มต้น: os.cpus (). ความยาว
(แนวคิดเฉพาะ UNIX การโหลดโดยเฉลี่ยคือการวัดกิจกรรมของระบบคำนวณโดยระบบปฏิบัติการและแสดงเป็นจำนวนเศษส่วนตามกฎของหัวแม่มือค่าเฉลี่ยโหลดควรน้อยกว่าจำนวนซีพียูตรรกะในระบบอ้างอิง: http://nodejs.org/api/os.html#os_os_os
ค่าเฉลี่ยโหลดเฉลี่ย 5 นาทีซึ่งเหตุการณ์ 'loadavg5' ถูกเรียกใช้ ค่าเริ่มต้น: os.cpus (). ความยาว
ค่าโหลดเฉลี่ย 15 นาทีซึ่งเหตุการณ์ 'loadavg15' จะถูกเรียกใช้ ค่าเริ่มต้น: os.cpus (). ความยาว
ตั้งค่าจริงเป็น 'จอมอนิเตอร์' ค่าเริ่มต้น: FALSE
ตั้งค่าจริงเพื่อเปิดใช้งานจอภาพเป็นสตรีมที่อ่านได้ ค่าเริ่มต้น: FALSE
ตั้งค่าจริงเพื่อเรียกใช้งานรอบการตรวจสอบ ณ จุดเริ่มต้น () ค่าเริ่มต้น: FALSE
คุณสมบัติ monitor.version มีสตริงเวอร์ชัน os-monitor
เริ่มจอภาพ ยอมรับวัตถุตัวเลือกทางเลือก
หยุดจอภาพ
ตรวจสอบว่าจอภาพกำลังทำงานอยู่หรือไม่ ส่งคืนบูลีน
ยอมรับวัตถุตัวเลือกที่เป็นตัวเลือกและอัปเดตการตรวจสอบการกำหนดค่า ส่งคืนตัวเลือกการกำหนดค่ามอนิเตอร์เสมอ
รีเซ็ตการตรวจสอบการกำหนดค่าเป็นค่าเริ่มต้น
เพิ่มผู้ฟังสำหรับประเภทเหตุการณ์ที่ระบุ เหตุการณ์ที่ได้รับการสนับสนุนคือ: 'จอภาพ', 'uptime', 'freemem', 'diskfree', 'loadavg1', 'loadavg5', 'loadavg15', 'เริ่มต้น', 'หยุด', '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
}
เหตุการณ์ที่ได้รับการสนับสนุนทั้งหมดคือ: 'จอภาพ', 'uptime', 'freemem', 'diskfree', 'loadavg1', 'loadavg5', 'loadavg15', 'เริ่มต้น', 'หยุด', 'config', 'รีเซ็ต', 'ทำลาย' โปรดทราบว่า os-monitor เป็นอินสแตนซ์ของ EventEmitter
Events 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 สามารถใช้งานได้อย่างอิสระทั้งในโครงการที่เป็นกรรมสิทธิ์และโอเพ่นซอร์ส
จำเป็นต้องมีการระบุแหล่งที่มา: คุณต้องเก็บชื่อผู้แต่งและข้อมูลใบอนุญาตไว้ในรหัสกระจายใด ๆ รายการเหล่านี้ไม่จำเป็นต้องหันหน้าไปทางผู้ใช้และสามารถอยู่ใน codebase