Elastic Distribution of OpenTelemetry Node.js release notes
Stack Serverless Observability
Review the changes, fixes, and more in each version of Elastic Distribution of OpenTelemetry Node.js (EDOT Node.js).
To check for breaking changes, see EDOT Node.js Breaking Changes.
To check for security updates, go to Security announcements for the Elastic stack.
Initial support for Central Configuration: the ability to configure some aspects of EDOT Node.js in running instrumented applications from a central Kibana. This feature is in technical preview. #834
This release includes support for the following settings:
logging_level
Fix publishing so that the "hook.mjs" file is included. #835
Without this fix, using
node --import @elastic/opentelemetry-node ...
will crash with:Cannot find module '.../node_modules/@elastic/opentelemetry-node/hook.mjs' imported from .../node_modules/@elastic/opentelemetry-node/import.mjs
- Added the
ELASTIC_OTEL_HOST_METRICS_DISABLED
environment variable to control whether EDOT Node.js collects host metrics (process.*
). This means users can turn off host metrics without affecting metrics from instrumentations. #736
The ELASTIC_OTEL_METRICS_DISABLED
environment variable is now deprecated. Use OTEL_METRICS_EXPORTER=none
to turn off any metrics exported by EDOT Node.js.
- Restored the
@elastic/opentelemetry-node/sdk
entry point. You can usenode --import ./telemetry.mjs app.js
rather than the typical zero-codenode --import @elastic/opentelemetry-node app.js
method for starting the SDK. #718.
The ./telemetry.mjs
file uses APIs exported by @elastic/opentelemetry-node/sdk
to configure and start the OpenTelemetry Node.js SDK. See examples/telemetry.mjs
.
Bootstrapping the Node SDK in code often requires using OpenTelemetry JS APIs that are not yet stable. These APIs might break in minor versions of @elastic/opentelemetry-node
.
- Default to stable semantic conventions for HTTP instrumentation. #669.
- Upgraded upstream OTel dependencies to SDK 2.0. This should be non-breaking
for users of
node --import @elastic/opentelemetry-node my-app.js
to start EDOT Node.js for their application. #663. - Use
peerDependencies
for@opentelemetry/api
dependency, and cap it to a known-supported maximum version, according to OTel JS guidance for implementors. #606.
- Improved ES module (ESM) instrumentation. #584. As part of this change, using
--require @elastic/opentelemetry-node
will no longer set up a module hook for instrumenting ES modules; only using--import @elastic/opentelemetry-node
will do so. Use--import @elastic/opentelemetry-node
to start EDOT Node.js. Using--require ...
is still valid when you know your application is only using CommonJS modules. - Added
@opentelemetry/instrumentation-mysql
to the default set of instrumentations. - Added
@opentelemetry/instrumentation-mysql2
to the default set of instrumentations. - Added
@opentelemetry/instrumentation-cassandra-driver
to the default set of instrumentations. - Test that the native instrumentation in
@elastic/elasticsearch@8.15.0
and later works.
- Added
@elastic/opentelemetry-instrumentation-openai
to the default set of instrumentations.
- Bumped
@opentelemetry/*
dependencies.
- Fixed release workflow. v0.4.0 was released without a GitHub releases entry.
A Docker image is now being published that can be used with the OpenTelemetry Operator's support for auto-instrumentation injection (#374):
docker.elastic.co/observability/elastic-otel-node:${version}
and:latest
will be published for tagged releasesdocker.elastic.co/observability/elastic-otel-node:edge
will be published for each push to "main".
- Added the following instrumentations:
@opentelemetry/instrumentation-connect @opentelemetry/instrumentation-cucumber @opentelemetry/instrumentation-dataloader @opentelemetry/instrumentation-dns @opentelemetry/instrumentation-generic-pool @opentelemetry/instrumentation-knex @opentelemetry/instrumentation-koa @opentelemetry/instrumentation-lru-memoizer @opentelemetry/instrumentation-memcached @opentelemetry/instrumentation-nestjs-core @opentelemetry/instrumentation-net @opentelemetry/instrumentation-redis @opentelemetry/instrumentation-restify @opentelemetry/instrumentation-router @opentelemetry/instrumentation-socket.io
- Bumped minimum supported Node.js version to v14.18.0.
- Added the following
@opentelemetry/instrumentation-*
instrumentations:hapi
,aws-sdk
,redis-4
,grpc
,pino
. - Added cloud and container resource detectors, the same set included in
@opentelemetry/auto-instrumentations-node
. These are enabled by default. UseOTEL_NODE_RESOURCE_DETECTORS
to set an explicit list of detectors. - Added missing exporters for logs and metrics signals. This means that
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
andOTEL_EXPORTER_OTLP_PROTOCOL=http/json
now work. Before this change only the defaulthttp/proto
OTLP export protocol would work by default.
- Correct another issue with "repository.url" setting in package.json, required for npm provenance generation.
Correct "repository.url" setting in package.json, required for npm provenance generation.
- Trimmed files included in published npm package.
First release of the Elastic Distribution of OpenTelemetry Node.js.