N|Solid is an enterprise-grade Node.js runtime produced by Nodesource that provides additional performance metrics about Node.js processes.

This topic describes the additional data available in AppDynamics for N|Solid monitoring.  

Metrics

When the Node.js agent is installed on an N|Solid runtime, it collects these additional metrics and makes them available in the AppDynamics controller so they can be used to diagnose latency issues and memory leaks.

You can view the metrics under the following paths in the metric browser navigation tree, by node at Application Infrastructure Performance > <TierName> > Individual Nodes > Nodejs_<NodeName>  > Node.js.

  • NSolid -> 1-minute, 5-minute, and 15-minute load average
  • NSolid -> System Uptime & Process uptime (ms)
  • NSolid -> Memory -> JS heap -> Total Usage (MB)
    • The amount of the heap that is being used by JavaScript.
  • NSolid -> Memory -> V8 heap -> Total Available (MB)
    • Total memory available to the V8 heap.
  • NSolid -> Memory -> Total Available (MB)
    • Total memory available to the process.
  • NSolid -> Memory -> Total Size (MB)
    • Total memory used by the process.
  • NSolid -> Event Loop -> Active Handles:
    • The number of active handles the event loop will process. Handles tend to be longer-lived larger-scale asynchronous operations, such as open sockets or timers. An uptick in this metric could indicate a possible memory leak.
  • NSolid -> Event Loop -> Active Requests:
    • The number of active requests the event loop will process. Requests tend to be shorter-lived smaller-scale operations such as writing to file handles and other file-related operations. This metric provides additional insight into load characteristics.
  • NSolid -> Idle Percent: 
    • Time spent waiting for I/O and not running Javascript.
  • NSolid -> Estimated Lag
    • Average amount of time a I/O response may have to wait before being processed.
  • NSolid -> Loops Per Second
    • Number of executions per second of the libuv event loop.
  • NSolid -> Average Tasks:
    • Number of asynchronous Javascript tasks per turn of the loop.
  • NSolid -> Total Count:
    • Total number of event loop turns.

Process Snapshots Data

You can view details on asynchronous activities in the Node.js event loop for N|Solid processes in Process Snapshots > Async Activity. The following categories of event loop activity are displayed in Async Activity: 

  • Active Handles: active handles that the event loop will process
  • Active Requests: the number of active requests the event loop will process
  • Pending: lower level asynchronous activity

The following information is displayed for each property:

  • Type: The property type (e.g., TCP socket connection, setTimeout)
  • Location: The source location associated with the activity, when available