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> }
}
}
}
process.monitor.gc 에서 읽기 전용 속성을 작성하여 쓰레기 수집 활동을 내성하는 기능을 실행중인 NodeJS 응용 프로그램에 제공합니다.
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 에 의해 설정됩니다.
모니터링이 시작된 이후 총 요청을보고하는 방법 ( reqstotal ), 현재 열린 연결 ( oreqs ) 및 모니터링이 시작된 이후 반환 된 총 데이터 ( kb_trans oconns 를보고합니다. 참고 : KeepAlive가 활성화 될 때 oreqs oconns 보다 클 수 있습니다 .
V8 쓰레기 수집 후크에 기기 (각 GC 유형에 대해)에 각보고 간격에 대한 다음 통계에 부착됩니다.
count : GC 유형이 호출 된 횟수elapsed_ms : 총 경과 시간 NODEJS 스레드가 차단됩니다max_ms : 하나의 GC 이벤트에서 차단하는 최대 시간이러한 기능의 사용을 보여주는 예제는 예제/readme.md를 참조하십시오.