stats-beat
Node.js performance statistics emitter
Install
npm install --save stats-beat
Note: requires node v4 or higher.
Usage
const statsBeat = ; var app = ;//...var server = app;statsBeatstart server ;
export STATS_BEAT=allnpm start
Then all performance metrics will be prtinted on the console each 5 seconds
{"sysload%":18,"freememMB":3661,"cpu%":112,"rssMB":152,"heapMB":64,"rps":3149,"resTime_ms":20.887753158529616,"reqBytes":116,"resBytes":114849,"rxKBs":365,"txKBs":361653,"numconn":80,"evloop_us":6646}
To report only CPU and memory ech 2s, use this command:
export STATS_BEAT='period=2&cpu&rss'npm start
You can register a listener to process the performance metrics in a custom way, e.g. write them in a csv file or send them to a central service.
const statsBeat = ; var app = ;//...var server = app;statsBeatstart server ;statsBeat;
Reference
Stats
Selector | Property | Description |
---|---|---|
sysload |
sysload% |
1 minute system load average as %. See os.loadavg() |
freemem |
frememMB |
Free system memory in MB. See os.freemem() |
cpu |
cpu% |
Process CPU usage as % of one logical core. Requires node v6.1. See process.cpuUsage() |
rss |
rssMB |
Process memory (resident set size) in MB. See process.memoryUsage() |
heap |
heapMB |
V8 heap used. See process.memoryUsage() |
rps |
rps |
Completed requests per second. |
restime |
resTime_ms |
Response time in ms. |
reqbytes |
reqBytes |
Total request size in bytes. |
resbytes |
resBytes |
Total response size in bytes. |
rxrate |
rxKBs |
KB received per second |
txrate |
txKBs |
KB sent per second |
numconn |
numconn |
Number of concurrent connections on the server. See server.getConnections() |
evloop |
evloop_us |
Node event loop latency in microseconds |