โมดูลการตรวจสอบกระบวนการ nodejs
แพ็คเกจนี้ได้รับการทดสอบด้วย Node.js LTS รุ่นเท่านั้น
หมายเหตุ: ปัจจุบันโมดูลนี้ใช้งานได้ในระบบปฏิบัติการ Linux เท่านั้น
โมดูลนี้เริ่มต้นเธรดแยกต่างหากภายในรันไทม์ NodeJS ที่ตรวจสอบและรวบรวมสถิติเกี่ยวกับกระบวนการ NodeJS ที่กำลังรัน สถิติเหล่านี้จะถูกส่งเป็นข้อความ JSON ผ่าน DataGrams UDP ผ่านซ็อกเก็ตโดเมนท้องถิ่น
นี่คือรายการข้อมูลที่โมดูลรายงานเป็นระยะ:
{ status:
{ pid: <pid of the node process>,
ts: <current time stamp>,
cluster: <process group id>,
reqstotal: <total requests processed by this node process server>,
utcstart: <when the process was started>,
events: <number of new reports being processed since last stats reporting>,,
cpu: <cpu usage>,
mem: <memory usage>,
cpuperreq: <cpu usage per request>,
oreqs: <current open requests count>,
sys_cpu: <system cpu load>,
oconns: <current open connections count>,
user_cpu: <user cpu load>,
rps: <requests per second>,
kbs_out: <kbs of data transferred since last stats reporting>,
elapsed: <time elapsed since last event>,
kb_trans: <total kbs of data transferred>,
jiffyperreq: <cpu usage in terms of ticks per request>,
gc: {
scavenge: { count: <number>, elapsed_ms: <number>, max_ms: <number> },
marksweep: { count: <number>, elapsed_ms: <number>, max_ms: <number> }
}
}
}
มันให้แอปพลิเคชัน NODEJS ที่กำลังทำงานพร้อมความสามารถในการเข้าร่วมกิจกรรมการรวบรวมขยะโดยการสร้างคุณสมบัติแบบอ่านอย่างเดียวที่ process.monitor.gc ที่รายงาน:
count : จำนวนครั้งที่ GC หยุดเหตุการณ์เกิดขึ้นelapsed : เวลาสะสม (เป็นมิลลิวินาที) ใช้ใน GCกับ NPM DO:
npm install monitr
var monitor = require ( 'monitr' ) ; monitor . start ( ) ;วางไข่เธรดและตรวจสอบกระบวนการ เขียนสถิติกระบวนการทุกวินาทีไปยังเส้นทางซ็อกเก็ต
monitor . stop ( ) ;ยุติเธรดและปิดซ็อกเก็ต
monitor . setIpcMonitorPath ( '/tmp/my-process-stats.mon' ) ;ตั้งค่าชื่อซ็อกเก็ตดาต้าแกรมเพื่อเขียนสถิติ ค่าเริ่มต้นเป็น /tmp/nodejs.mon
Monitr สนับสนุนฟังก์ชั่นสุขภาพที่กำหนดเองโดยแอปสามารถรายงานสุขภาพของตัวเองได้ วิธีการต่อไปนี้จะถูกเพิ่มเข้าไปในกระบวนการ. MONITOR เพื่อตั้งค่าและรับข้อมูลสุขภาพ
setHealthStatus ( isDown , statusCode )
isDown ( )
getStatusCode ( )
getStatusTimestamp ( ) - Return seconds when setHealthStatus was last called
getStatusDate ( ) - Return Date objectเมื่อมีการเรียกใช้ Sethealthstatus สถานะ JSON ที่อธิบายไว้ข้างต้นจะมีฟิลด์เพิ่มเติมดังต่อไปนี้
health_status_timestamp : < timestamp when the setHealthStatus was invoked , in sec > ,
health_is_down : < app is down or up , boolean > ,
health_status_code: < health status code > Monitr ติดตั้งตัวจัดการ SIGHUP ที่กำหนดเองซึ่งจะเลือกพิมพ์แบ็คแท็ก NodeJS สแต็กของ JavaScript ที่กำลังดำเนินการอยู่ สิ่งนี้มีประโยชน์สำหรับการดีบักที่กระบวนการ NodeJS อาจ ติดอยู่
มันค้นหาไฟล์ /proc /* บนระบบเพื่อรายงานการใช้งาน CPU มันค้นหาไฟล์/proc/pid/* บนระบบเพื่อรายงานสถิติของตัวเอง process.monitor.* วิธีการถูกตั้งค่าโดย lib/monitor.js
มันเรียกว่า process.monitor.* วิธีการรายงานการร้องขอทั้งหมดตั้งแต่การตรวจสอบเริ่มต้น ( reqstotal ) คำขอปัจจุบันในเที่ยวบิน ( oreqs ) การเชื่อมต่อแบบเปิดปัจจุบัน ( oconns ) และข้อมูลทั้งหมดที่ส่งคืนตั้งแต่การตรวจสอบเริ่มต้น ( kb_trans ) หมายเหตุ: oreqs อาจมากกว่า oconns เมื่อเปิดใช้งาน Keepalive
มันติดอยู่กับการรวบรวม V8 Garbage Collection กับเครื่องมือ (สำหรับแต่ละประเภท GC) สถิติต่อไปนี้สำหรับแต่ละช่วงเวลาการรายงาน
count : จำนวนครั้งที่ GC ประเภทเรียกใช้elapsed_ms : เธรด NodeJS เวลาที่ผ่านไปทั้งหมดถูกบล็อกmax_ms : เวลาสูงสุดที่ใช้ถูกบล็อกโดยเหตุการณ์ GC ใด ๆโปรดดูตัวอย่าง/readme.md สำหรับตัวอย่างที่แสดงการใช้ฟังก์ชั่นเหล่านี้