Modul Pemantauan Proses NodeJS
Paket ini hanya diuji dengan versi Node.js LTS.
Catatan: Modul ini saat ini hanya berfungsi pada sistem operasi Linux .
Modul ini memulai utas terpisah dalam runtime NodeJS yang memantau dan mengumpulkan statistik tentang proses NodeJS yang sedang berjalan. Statistik ini kemudian dikirim sebagai pesan JSON melalui datagram UDP melalui soket domain lokal.
Berikut adalah daftar data yang dilaporkan modul secara berkala:
{ 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> }
}
}
}
Ini memberikan aplikasi Nodejs yang sedang berjalan dengan kemampuan untuk mengintrospeksi aktivitas pengumpulan sampah dengan membuat properti baca-saja di process.monitor.gc yang melaporkan:
count : Jumlah kali GC Stop-the-World Events terjadielapsed : Waktu kumulatif (dalam milidetik) dihabiskan di GCDengan NPM DO:
npm install monitr
var monitor = require ( 'monitr' ) ; monitor . start ( ) ;Memunculkan utas dan memantau prosesnya. Menulis statistik proses setiap detik ke jalur soket.
monitor . stop ( ) ;Mengakhiri utas dan menutup soket.
monitor . setIpcMonitorPath ( '/tmp/my-process-stats.mon' ) ;Mengatur nama soket datagram untuk menulis statistik. Default ke /tmp/nodejs.mon
MONITR mendukung fungsionalitas kesehatan khusus di mana aplikasi dapat melaporkan kesehatannya sendiri. Metode berikut ditambahkan ke Process.monitor untuk mengatur dan mendapatkan informasi kesehatan.
setHealthStatus ( isDown , statusCode )
isDown ( )
getStatusCode ( )
getStatusTimestamp ( ) - Return seconds when setHealthStatus was last called
getStatusDate ( ) - Return Date objectSetelah SetHealthstatus dipanggil, status JSON, yang dijelaskan di atas, akan memiliki bidang tambahan.
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 menginstal handler SIGHUP khusus yang secara opsional akan mencetak backtrace tumpukan nodejs dari JavaScript yang saat ini sedang dieksekusi. Ini bisa berguna untuk debugging di mana proses nodeJS mungkin macet .
Ini mencari /Proc /* file pada sistem untuk melaporkan penggunaan CPU. Ini mencari/proc/pid/* file pada sistem untuk melaporkan statistiknya sendiri. process.monitor.* Metode ditetapkan oleh lib/monitor.js .
Ini memanggil proses.monitor.* Metode untuk melaporkan total permintaan sejak pemantauan dimulai ( reqstotal ), permintaan saat ini dalam penerbangan ( oreqs ), koneksi terbuka saat ini ( oconns ) dan total data yang dikembalikan sejak pemantauan dimulai ( kb_trans ). Catatan: oreqs mungkin lebih besar dari oconns saat Keepalive diaktifkan .
Ini melekat pada kait pengumpulan sampah V8 ke instrumen (untuk setiap jenis GC) statistik berikut untuk setiap interval pelaporan.
count : berapa kali tipe GC dipanggilelapsed_ms : Total waktu yang berlalu waktu nodeJS diblokirmax_ms : Waktu maksimum yang dihabiskan diblokir oleh satu acara GCSilakan merujuk ke contoh/readme.md untuk contoh yang menunjukkan penggunaan fungsi -fungsi ini.