Node.js runtime metrics are gathered and reported by the node agent transparently to the application. The metrics cover the interval being reported, e.g., the CPU usage reported covers the interval, not the entire time the application has been running. All time-based metrics are reported in microseconds (millionths of a second).
These metrics are available throughout the AppOptics system to build dashboards and alerts. Reporting is enabled by default and make available the metrics described below. To disable reporting please refer to the
runtimeMetrics property or
APPOPTICS_RUNTIME_METRICS environment variable in the configuration guide.
CPU metrics are the same data as node's process.cpuUsage() function returns.
|trace.node.process.memoryUsage.rss||resident set size|
|trace.node.process.memoryUsage.heapTotal||bytes in v8 heap|
|trace.node.process.memoryUsage.heapUsed||bytes used in v8 heap|
|trace.node.process.memoryUsage.external||bytes for C++ objects bound to JS objects managed by v8|
|trace.node.v8.heapStatistics.total_heap_size||bytes allocated by v8 for the heap|
|trace.node.v8.heapStatistics.heap_size_executable||bytes for compiled bytecode|
|trace.node.v8.heapStatistics.total_physical_size||committed size of heap|
|trace.node.v8.heapStatistics.used_heap_size||bytes used by application data|
|trace.node.v8.heapStatistics.heap_size_limit||absolute limit the heap cannot exceed|
|trace.node.v8.heapStatistics.malloced_memory||amount of memory obtained via malloc|
|trace.node.v8.heapStatistics.peak_malloced_memory||peak amount of memory obtained via malloc|
Garbage collection metrics are gathered by the appoptics-bindings C++ node addon and measure how long major and minor garbage collection events take. They use the v8 garbage collection callbacks which provide a part of the garbage collection cost. These times are indicative of the costs of garbage collection but should not be used as absolute values. Garbage collection in node is increasingly being moved to interleaved and background mechanisms that neither compete with the application for resources nor can be accurately measured in a meaningful way.
|trace.node.gc.count||count of major and minor GC events|
|trace.node.gc.time||microseconds taken by the GC events|
|trace.node.gc.[major|minor].count||count of GC events|
|trace.node.gc.[major|minor].p50||50th percentile time|
|trace.node.gc.[major|minor].p75||75th percentile time|
|trace.node.gc.[major|minor].p90||90th percentile time|
|trace.node.gc.[major|minor].p95||95th percentile time|
|trace.node.gc.[major|minor].p99||99th percentile time|
Eventloop metrics are gathered by the appoptics-bindings C++ node addon. They measure how long the application portion of the eventloop takes to execute. The percentiles are generally the most informative metrics because infrequent longer eventloop delays have little impact on the application.
|trace.node.eventloop.p50||50th percentile time to complete|
|trace.node.eventloop.p75||75th percentile time to complete|
|trace.node.eventloop.p90||90th percentile time to complete|
|trace.node.eventloop.p95||95th percentile time to complete|
|trace.node.eventloop.p99||99th percentile time to complete|
|trace.node.eventloop.min||Minimum time to complete|
|trace.node.eventloop.max||maximum time to complete|
|trace.node.eventloop.mean||arithmetic mean of time to complete|
|trace.node.eventloop.stddev||standard deviation of time to complete|
When the APM Integrated Experience is enabled, AppOptics shares a common navigation and enhanced feature set with the other integrated experiences' products. How you navigate AppOptics and access its features may vary from these instructions. For more information, go to the APM Integrated Experience documentation.