Metrics

edit

The Node.js agent tracks various system and application metrics. These metrics will be sent regularly to the APM Server and from there to Elasticsearch. You can adjust the interval by setting metricsInterval.

The metrics will be stored in the apm-* index and have the processor.event property set to metric.

system.cpu.total.norm.pct

edit
  • Type: Float
  • Format: Percent

The percentage of CPU time in states other than Idle and IOWait, normalized by the number of cores.

system.memory.total

edit
  • Type: Long
  • Format: Bytes

The total memory of the system in bytes.

system.memory.actual.free

edit
  • Type: Long
  • Format: Bytes

Free memory of the system in bytes.

system.process.cpu.total.norm.pct

edit
  • Type: Float
  • Format: Percent

The percentage of CPU time spent by the process since the last event. This value is normalized by the number of CPU cores and it ranges from 0 to 100%.

system.process.memory.rss.bytes

edit
  • Type: Long
  • Format: Bytes

The Resident Set Size, the amount of memory the process occupies in main memory (RAM).

nodejs.handles.active

edit
  • Type: Long
  • Format: Counter

The number of active libuv handles, likely held open by currently running I/O operations.

nodejs.requests.active

edit
  • Type: Long
  • Format: Counter

The number of active libuv requests, likely waiting for a response to an I/O operation.

system.process.cpu.user.norm.pct

edit
  • Type: Long
  • Format: Counter

The number of CPU cycles spent executing application code.

system.process.cpu.system.norm.pct

edit
  • Type: Long
  • Format: Counter

The number of CPU cycles spent executing kernel code as a result of application activity.

nodejs.eventloop.delay.avg.ms

edit
  • Type: Float
  • Format: Milliseconds

The number of milliseconds of event loop delay. Event loop delay is sampled every 10 milliseconds. Delays shorter than 10ms may not be observed, for example if a blocking operation starts and ends within the same sampling period.

nodejs.memory.heap.allocated.bytes

edit
  • Type: Long
  • Format: Bytes

The current allocated heap size in bytes.

nodejs.memory.heap.used.bytes

edit
  • Type: Long
  • Format: Bytes

The currently used heap size in bytes.

nodejs.memory.external.bytes

edit
  • Type: Long
  • Format: Bytes

Memory usage of C++ objects bound to JavaScript objects managed by V8.

nodejs.memory.arrayBuffers.bytes

edit
  • Type: Long
  • Format: Bytes

Memory allocated for ArrayBuffers and SharedArrayBuffers, including all Node.js Buffers. This is also included in the nodejs.memory.external.bytes value.

span.self_time.sum

edit
  • Type: Long
  • Format: Milliseconds

The sum of all span self-times in milliseconds since the last report (the delta). The span.self_time.* metrics are referred to as "breakdown metrics".

You can filter and group by these dimensions:

  • transaction.name: The name of the transaction
  • transaction.type: The type of the transaction, for example request
  • span.type: The type of the span, for example app, template or db
  • span.subtype: The sub-type of the span, for example mysql (optional)

span.self_time.count

edit
  • Type: Long
  • Format: Counter

You can filter and group by these dimensions:

  • transaction.name: The name of the transaction
  • transaction.type: The type of the transaction, for example request
  • span.type: The type of the span, for example app, template or db
  • span.subtype: The sub-type of the span, for example mysql (optional)