Metrics
Elastic Stack Serverless Observability
In the Elastic Distribution of OpenTelemetry for Node.js (EDOT Node.js) the collection of metrics is turned on by default. Refer to the settings with METRIC
in the name for all options for configuring metric collection.
EDOT Node.js gathers metrics from the Node.js process your application is running using the following packages:
@opentelemetry/host-metrics
to gatherprocess.cpu.*
andprocess.memory.*
metrics (ref).@opentelemetry/instrumentation-runtime-node
to gathernodejs.eventloop.*
(ref) andv8js.*
(ref) metrics.
Process and runtime metrics are useful when you're checking the performance of your instrumented service. A subset of them are useful to detect issues when doing an overview of the instrumented service. These are:
nodejs.eventloop.delay.p50
andnodejs.eventloop.delay.p90
are the 50th and 90th percentiles of the event loop delay. The event loop delay measures the time span between the scheduling of a callback and its execution. The bigger the number, the more sync work you have in your service blocking the event loop.nodejs.eventloop.utilization
is the utilisation of the event loop reported byperformance.eventLoopUtilization([utilization1[, utilization2]])
which gives the percentage of time the event loop is being used (not idle).process.cpu.utilization
is the percentage of time the CPU is running the service code. Big values in this metric suggest your service is doing compute intensive tasks.process.memory.usage
is the value of Resident Set Size in bytes. It measures how much memory the process is allocating.
If your service is instrumented by EDOT Node.js, or by custom instrumentation that includes the packages previously mentioned, Kibana shows them as part of the service metrics.