Metrics in Detail
N|Solid makes available a rich set of metrics covering the Node.js process's host system, the process itself, the internal behavior of Node.js, and the internal behavior of the V8 JavaScript engine. Combining these data points can give you sophisticated insight into your Node.js deployment.
Many of the key metrics are displayed directly on the N|Solid Console. To make numeric metrics available to your StatsD collector directly from the N|Solid Process, configure using the NSOLID_STATSD
environment variable (see the StatsD section for more detail). For the full set of metrics, use the nsolid-cli
utility.
Property | Description |
---|
app | The user-specified application name as set in package.json or the NSOLID_APP environment variable. |
appVersion | The user-specified application version as set in package.json . |
execPath | The absolute path of the N|Solid executable running the application. |
id | The unique N|Solid agent ID. Unique per N|Solid process. |
main | The absolute path to the root module in the process's module tree. |
nodeEnv | The user-specified NODE_ENV environment variable. |
pid | The system process ID for the process. |
processStart | The time at which the process started, in seconds. |
tags | The user-specified tags as set by the NSOLID_TAGS environment variable. |
vulns | The number of known vulnerabilities found in the modules of the process. |
Note: The host system may be actual hardware, a virtual machine, or a container.
Property | Description |
---|
arch | The host system's CPU architecture. |
cpuCores | The host system's number of CPU cores. |
cpuModel | The host system's CPU model. |
hostname | The host system's name. |
platform | The host system's operating system platform. |
totalMem | The host system's total available memory. |
System Data
Property | Description |
---|
cpuSpeed | The current speed of the host system's CPU (averaged across all cores), in MHz. |
freeMem | The host system's amount of free (unused) memory, in bytes. |
load1m | The host system's one-minute load average. |
load5m | The host system's five-minute load average. |
load15m | The host system's fifteen-minute load average. |
systemUptime | The host system's uptime, in seconds. |
General Process Stats
Property | Description |
---|
blockInputOpCount | The total number of block input operations on the process. |
blockOutputOpCount | The total number of block output operations on the process. |
cpuSystemPercent | The percent CPU used by the process in system calls. |
cpuUserPercent | The percent CPU used by the process in user code. |
ctxSwitchInvoluntaryCount | The number of involuntary context switches away from the process. |
ctxSwitchVoluntaryCount | The number of voluntary context switches away from the process. |
cpuPercent | The percent CPU used by the process. |
externalMem | The process's memory allocated by Node.js outside of V8's heap, in bytes. This may exceed RSS if large Buffers are soft-allocated by V8. |
ipcReceivedCount | The number of IPC messages received by the process. |
ipcSentCount | The number of IPC messages sent by the process. |
pageFaultHardCount | The number of hard page faults triggered by the process. |
pageFaultSoftCount | The number of soft page faults (page reclaims) triggered by the process. |
rss | The resident set size (total memory) used by the process, in bytes. |
signalCount | The number of signals received by the process. |
swapCount | The number of times the process has been swapped out of memory. |
title | The current system title of the process. |
uptime | The process's uptime, in seconds. |
user | The system's user the process is running from. |
JavaScript Memory Stats
Note: The memory in "heap" is a subset of the resident set size.
Property | Description |
---|
totalAvailableSize | The remaining amount of memory the heap can allocate on the process before hitting the maximum heap size, in bytes. |
totalHeapSizeExecutable | The total amount of executable memory allocated in the process's heap, in bytes. |
totalPhysicalSize | The amount of physical memory currently committed for the heap of the process, in bytes. |
heapSizeLimit | The maximum amount of memory reserved for the heap by the process, as allocated by the host system, in bytes. V8 will terminate with allocation failures if memory is used beyond this. |
heapTotal | The process's total allocated JavaScript heap size, in bytes. |
heapUsed | The process's total used JavaScript heap size, in bytes. |
Node.js Event Loop Stats
Note: To learn more about event loop utilization visit The Event loop utilization blogpost.
Property | Description |
---|
loopAvgTasks | The process's average number of async JavaScript entries per event loop cycle. |
loopEstimatedLag | The estimated amount of time a I/O response may have to wait in the process, in milliseconds. |
loopIdlePercent | The percent time that the process is waiting (idle) for I/O or timers. |
loopsPerSecond | The amount of event loop cycles completed in the process, within the last second. |
loopTotalCount | The cumulative count of all event loop cycles in the process. |
JavaScript Garbage Collection Stats
Property | Description |
---|
gcCount | The total number of garbage collections done by the process. |
gcCpuPercent | The percent CPU used during garbage collection by the process. |
gcDurUs99Ptile | The process's 99th percentile duration of garbage collections, in microseconds. |
gcDurUsMedian | The process's median duration of garbage collections, in microseconds. |
gcForcedCount | The process's number of externally forced garbage collections. |
gcFullCount | The number of garbage collections run by the process which collected all available garbage. Usually only observed when the heapTotal is approaching heapSizeLimit . |
gcMajorCount | The number of significant garbage collections done by the process. An example of a "significant" garbage collection is a "Mark-Sweep". |
HTTP and DNS Stats
Property | Description |
---|
dnsCount | The process's total number of DNS lookups performed. |
dnsMedian | The process's median duration of DNS lookups performed, in milliseconds. |
httpClientAbortCount | The process's total number of outgoing HTTP(S) client requests canceled due to inactivity. |
httpClientCount | The process's total number of outgoing HTTP(S) client requests performed. |
httpClientMedian | The process's median duration of outgoing HTTP(S) client requests completed, in milliseconds. |
httpClient99Ptile | The process's 99th percentile duration of outgoing HTTP(s) client requests completed, in milliseconds. |
httpServerAbortCount | The process's total number of served incoming HTTP(S) requests canceled. |
httpServerCount | The process's total number of incoming HTTP(s) requests served. |
httpServerMedian | The process's median duration of served incoming HTTP(S) requests completed, in milliseconds. |
httpServer99Ptile | The process's 99th percentile duration of served incoming HTTP(S) requests completed, in milliseconds.. |
Property | Description |
---|
time | The ISO8601 timestamp representing when a given metrics window completed. |