nodejsプロセス監視モジュール
このパッケージは、node.js LTSバージョンでのみテストされています。
注:このモジュールは現在、Linuxオペレーティングシステムでのみ動作します。
このモジュールは、NodeJSプロセスに関する統計を監視および収集するNodeJSランタイム内の個別のスレッドを開始します。これらの統計は、ローカルドメインソケットを介してUDPデータグラムを介してJSONメッセージとして送信されます。
モジュールが定期的に報告するデータのリストは次のとおりです。
{ 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を使用してください:
npm install monitr
var monitor = require ( 'monitr' ) ; monitor . start ( ) ;スレッドをスポーンし、プロセスを監視します。ソケットパスに毎秒プロセス統計を書き込みます。
monitor . stop ( ) ;スレッドを終了し、ソケットを閉じます。
monitor . setIpcMonitorPath ( '/tmp/my-process-stats.mon' ) ;統計を書くようにデータグラムのソケット名を設定します。デフォルトは/tmp/nodejs.monになります
MONITRは、アプリが独自の健康を報告できるカスタムヘルス機能をサポートしています。次の方法がProcess.Monitorに追加され、健康情報を取得します。
setHealthStatus ( isDown , statusCode )
isDown ( )
getStatusCode ( )
getStatusTimestamp ( ) - Return seconds when setHealthStatus was last called
getStatusDate ( ) - Return Date objectSethealthStatusが呼び出されると、上記のステータス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 、現在実行中のJavaScriptのNodeJSスタックバックトレースをオプションで印刷するカスタムSIGHUPハンドラーをインストールします。これは、nodejsプロセスが詰まっている可能性のあるデバッグに役立ちます。
CPU使用量を報告するために、システム上の /proc /*ファイルを検索します。システム上の/proc/pid/*ファイルを検索して、独自の統計を報告します。 process.monitor.*メソッドはlib/monitor.jsによって設定されます。
Monitorを呼び出します。*監視が開始されてから総リクエストを報告する方法( reqstotal )、フライト( oreqs )での現在のリクエスト、現在のオープン接続( oconns )、および監視が開始されてから返された総データ( kb_trans )。注:keepAliveが有効になっている場合、 oreqs oconnsよりも大きい場合があります。
V8 Garbage Collectionフックに、各レポート間隔の次の統計を楽器(各GCタイプ)に取り付けます。
count :GCタイプが呼び出された回数elapsed_ms :Elapsed Time nodejsスレッドの合計がブロックされていますmax_ms :1つのGCイベントによってブロックされた最大時間これらの機能の使用を示す例については、例を参照してください。