Metricsedit

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.pctedit

  • Type: Float
  • Format: Percent

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

system.memory.totaledit

  • Type: Long
  • Format: Bytes

The total memory of the system in bytes.

system.memory.actual.freeedit

  • Type: Long
  • Format: Bytes

Free memory of the system in bytes.

system.process.cpu.total.norm.pctedit

  • 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.bytesedit

  • Type: Long
  • Format: Bytes

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

nodejs.handles.activeedit

  • Type: Long
  • Format: Counter

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

nodejs.requests.activeedit

  • 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.pctedit

  • Type: Long
  • Format: Counter

The number of CPU cycles spent executing application code.

system.process.cpu.system.norm.pctedit

  • Type: Long
  • Format: Counter

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

nodejs.eventloop.delay.avg.msedit

  • 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.bytesedit

  • Type: Long
  • Format: Bytes

The current allocated heap size in bytes.

nodejs.memory.heap.used.bytesedit

  • Type: Long
  • Format: Bytes

The currently used heap size in bytes.

nodejs.memory.external.bytesedit

  • Type: Long
  • Format: Bytes

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

nodejs.memory.arrayBuffers.bytesedit

  • 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.

transaction.duration.sumedit

  • Type: Long
  • Type: Milliseconds

The sum of all transaction durations in ms since the last report (the delta)

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

transaction.duration.countedit

  • Type: Long
  • Type: Milliseconds

The count of all transactions since the last report (the delta)

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

transaction.breakdown.countedit

  • Type: Long
  • Format: Counter

The number of transactions for which breakdown metrics (span.self_time) have been created. Breakdown metrics are only collected for sampled transactions.

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.self_time.sumedit

  • Type: Long
  • Format: Milliseconds

The sum of all span self-times in milliseconds since the last report (the delta)

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.countedit

  • 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)