Skip to content

Releases: elastic/elastic-otel-node

@elastic/opentelemetry-node 1.10.0

31 Mar 15:20
c936735

Choose a tag to compare

Changelog

Features and enhancements

  • Because @opentelemetry/instrumentation-fastify is no longer being maintained, it has been removed from EDOT Node.js. This matches the removal from @opentelemetry/auto-instrumentations-node. See the breaking changes note for this release for details on how to switch to @fastify/otel instrumentation.
  • Change the docker image (docker.elastic.co/observability/elastic-otel-node), used primarily for Kubernetes auto-instrumentation with the OpenTelemetry Operator, to run as the nonroot user. This allows using EDOT Node.js in with the OpenTelemetry Operator in Kubernetes clusters configured with a strict pod security policy that disallows running as root (securityContext.runAsNonRoot).

Chores


README | Full Release Notes | Breaking Changes

@elastic/opentelemetry-node 1.9.0

09 Mar 20:59
b8d459a

Choose a tag to compare

Changelog

Features and enhancements

  • Add environment variables for configuring HTTP header capture. #1349
    • ELASTIC_OTEL_INSTRUMENTATION_HTTP_CLIENT_CAPTURE_REQUEST_HEADERS - Comma-separated list of HTTP request headers to capture on client spans.
    • ELASTIC_OTEL_INSTRUMENTATION_HTTP_CLIENT_CAPTURE_RESPONSE_HEADERS - Comma-separated list of HTTP response headers to capture on client spans.
    • ELASTIC_OTEL_INSTRUMENTATION_HTTP_SERVER_CAPTURE_REQUEST_HEADERS - Comma-separated list of HTTP request headers to capture on server spans.
    • ELASTIC_OTEL_INSTRUMENTATION_HTTP_SERVER_CAPTURE_RESPONSE_HEADERS - Comma-separated list of HTTP response headers to capture on server spans.

Chores


README | Full Release Notes | Breaking Changes

@elastic/mockotlpserver 0.11.0

25 Feb 23:19
b3475b0

Choose a tag to compare

Changelog


README | Full Changelog

@elastic/opentelemetry-node 1.8.0

05 Feb 18:38
3fe8162

Choose a tag to compare

Changelog

Fixes

  • Fix the handling of the deactivate_all_instrumentations central configuration setting. If the value is false, it is now treated the same as if the setting had not been specified in central configuration. This means that deactivate_all_instrumentations=false and deactivate_instrumentations=foo will result in the "bar" instrumentation not being deactivated, which is the intended behavior. Before this change, deactivate_all_instrumentations=false would result in the deactivate_instrumentations setting being completely ignored. #1236

Chores


README | Full Release Notes | Breaking Changes

@elastic/opentelemetry-node 1.7.0

24 Nov 19:40
bf29223

Choose a tag to compare

Changelog

Features and enhancements

  • Add support for TLS/mTLS configuration of the OpAMP client (used for central configuration). Three new environment variables can be used: ELASTIC_OTEL_OPAMP_CERTIFICATE, ELASTIC_OTEL_OPAMP_CLIENT_CERTIFICATE, and ELASTIC_OTEL_OPAMP_CLIENT_KEY. See the Configure central configuration doc section for details. #1044

  • Improve the "preamble" log message at startup to include some details on envvars set that are relevant to the EDOT Node.js config. This uses an allowlist of non-sensitive envvars to avoid logging sensitive details. #1018

  • Add support for the opamp_polling_interval setting in Central Configuration. #1128

    While this is supported in the EDOT Node.js SDK, it will only be present in
    the "Agent Configuration" UI of Kibana version 9.3 and later.

Fixes

  • Update @opentelemetry/instrumentation-openai dependency to version 0.7.0 to resolve a possible issue with TypeScript compilation. opentelemetry-js-contrib#3240

README | Full Release Notes | Breaking Changes

@elastic/opamp-client-node 0.4.0

10 Nov 17:45
c53bc46

Choose a tag to compare

Changelog

  • BREAKING CHANGE: The heartbeatIntervalSeconds option to createOpAMPClient
    used to clamp the given value to [100ms, 1d]. Starting in this version,
    a value less than 100ms will be ignored, and the default value will be
    used. The reason for this is to ignore a possible accidental error case where
    zero or a negative number is provided, resulting in a too-fast 100ms
    interval. (The 100ms lower bound really only exists for faster testing. It
    is not a reasonable value for production.)

  • Add opampClient.setHeartbeatIntervalSeconds(num) and
    .resetHeartbeatIntervalSeconds() methods for dynamically changing the
    heartbeat interval used by the OpAMP client. Values less than 100ms are
    ignored (with a log.warn) and values greater than 1d are clamped to 1d.
    #1128


README | Full Changelog

@elastic/opamp-client-node 0.3.0

05 Nov 20:10
69eaf2c

Choose a tag to compare

Changelog

  • Add TLS and mTLS support. #1044

    const client = createOpAMPClient({
        // ...
        connect: {
            ca: fs.readFileSync(path.join(CERTS_DIR, 'ca.crt')),
            cert: fs.readFileSync(path.join(CERTS_DIR, 'client.crt')),
            key: fs.readFileSync(path.join(CERTS_DIR, 'client.key')),
        }
    });
  • Be more defensive in handling the heartbeatIntervalSeconds option: clamp to
    [100ms, 1d] and use the default (30s) for invalid values. The previous
    behaviour was to throw on invalid values, and to not have a max value.


README | Full Changelog

@elastic/mockopampserver 0.5.0

04 Nov 19:50
e7385d8

Choose a tag to compare

Changelog

  • Add TLS and mTLS support. #1044

    The mockopampserver CLI now has these new options for setting TLS data, and
    for requesting client certs (for mTLS):

    --cacert=ARG             Override the built-in-to-Node.js trusted CA
                             certificates with the content of this file, in PEM
                             format. Enables HTTPS.
    --cert=ARG               Path to file with TLS certificate chains, in PEM
                             format, to use. Enables HTTPS.
    --key=ARG                Path to server TLS private keys, in PEM format.
                             Enables HTTPS.
    --request-client-cert    Tells the server to request TLS certs from
                             connecting clients. Enables HTTPS.
    

    The code interface also has equivalent new options:

    const opampServer = new MockOpAMPServer({
        // ...
        ca: fs.readFileSync("..."),
        cert: fs.readFileSync("..."),
        key: fs.readFileSync("..."),
        requestCert: true
    });

README | Full Changelog

@elastic/opentelemetry-node 1.6.0

03 Nov 09:34
de63a92

Choose a tag to compare

Changelog

Features and enhancements

  • Add support for ELASTIC_OTEL_OPAMP_HEADERS environment variable for setting headers for OpAMP requests. This typically would be used to specify authorization for a given ELASTIC_OTEL_OPAMP_ENDPOINT, e.g.: export ELASTIC_OTEL_OPAMP_HEADERS="Authorization=ApiKey sekrit". #1069

  • HTTP exporters now accept TLS configuration via the env vars OTEL_EXPORTER_OTLP_CERTIFICATE, OTEL_EXPORTER_OTLP_CLIENT_KEY and OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE. The signal specific vars (OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE, ...) are also taken into account.

  • Prepend EDOT Node.js product identifier in the user-agent for all HTTP and GRPC exporters. (#1104)

  • Switch back to the upstream resource detector @opentelemetry/resource-detector-gcp which covers more environments thanks to Google's contribution.

  • Add support for dynamic configuration of the sampling rate of the default logger via the sampling_rate variable in Central Configuration. #1070

    While this is supported in the EDOT Node.js SDK, it will only be present in
    the "Agent Configuration" UI of Kibana version 9.3 and later.

Fixes

  • Update to latest @opentelemetry/* dependencies (#1104), which includes a couple of fixes:
    • a bug in @opentelemetry/otlp-grpc-exporter-base@0.206.0 prevented to set the user-agent header in metadata. A change in the exporter configuration fixed it.
    • the context manager and propagation setup is the first thing at the start of the SDK. This prevents detectors from leaking telemetry since they get the right context.

README | Full Release Notes | Breaking Changes

@elastic/mockopampserver 0.4.1

31 Oct 20:16
1a058c9

Choose a tag to compare

Changelog


README | Full Changelog