Skip to content

Releases: signalfx/splunk-otel-js

v2.3.0

01 Aug 19:16
f1f0f32
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.4.1 1.15.1 0.41.1

Changes

August 1, 2023

  • Upgrade to OpenTelemetry 1.15.1 / 0.41.1. #761
  • Fix confusing error message regarding grpc: @opentelemetry/instrumentation-grpc Module @grpc/grpc-js has been loaded before @opentelemetry/instrumentation-grpc so it might not work, please initialize it before requiring @grpc/grpc-js. grpc is internally now lazily loaded. #762
  • Allow enabling and disabling instrumentations via environment variables by introducing OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED and OTEL_INSTRUMENTATION_[NAME]_ENABLED. #769

v2.2.4

01 Jul 11:10
c70d647
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.4.1 1.14.0 0.35.1

Changes

July 1, 2023

  • fix: pin OpenTelemetry dependencies to avoid multiple versions of @opentelemetry/instrumentation packages being loaded at the same time #745

v2.2.3

30 Jun 09:47
2dcda40
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.3.0 1.10.1 0.35.1

Changes

June 27, 2023

  • Fixed logLevel configuration option for start function throwing an error #741
  • Added Docker image for the OpenTelemetry Operator for Kubernetes #740

v2.2.2

03 May 11:55
d4ebc42
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.3.0 1.10.1 0.35.1

Changes

May 3, 2023

  • Internal: added frame count to profiling data. #726

v2.2.1

05 Apr 10:48
666f440
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.3.0 1.10.1 0.35.1

Changes

April 5, 2023

v2.2.0

22 Mar 17:49
838feda
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.3.0 1.10.1 0.35.1

Changes

March 22, 2023

  • Fixed SPLUNK_REALM environment variable taking precedence over endpoint supplied programmatically. endpoint now correctly overrides the endpoint created via SPLUNK_REALM and when both are set logs a warning. #668
  • Empty environment variables are now considered as not defined. #693
  • New configuration option: SPLUNK_DEBUG_METRICS_ENABLED / metrics.debugMetricsEnabled. #700 When set, extra set of internal troubleshooting metrics are produced. This should only be enabled to assist debugging. Defaults to false. Currently debug metrics for the CPU and memory profiler are produced, each being a histogram:
    • splunk.profiler.cpu.start.duration
    • splunk.profiler.cpu.stop.duration
    • splunk.profiler.cpu.process.duration
    • splunk.profiler.heap.collect.duration
    • splunk.profiler.heap.process.duration
  • Upgrade to OpenTelemetry 1.10.1 / 0.35.1. The full changes can be seen at OpenTelemetry JS releases:

v2.1.0

01 Dec 11:50
1b41119
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.3.0 1.8.0 0.34.0

Changes

1st of December, 2022

  • Deduce the service name from package.json if it is not explicitly configured. #625
  • Fix console metric exporter omitting datapoint specific attributes. #626

v2.0.0

23 Nov 10:12
d500919
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.3.0 1.8.0 0.34.0

Changes

22nd of November, 2022

For a list of major changes and features in 2.0.0 see the notes for 2.0.0-rc1.

Additional changes in this release:

  • Upgrade to OpenTelemetry JS 1.8.0 / 0.34.0. #612
  • Remove @opentelemetry/instrumentation-aws-lambda from the bundled packages as there exists a separate lambda instrumentation and due to the package not being compatible with @opentelemetry/instrumentation@0.34.0. #612.
  • @opentelemetry/api is now a peer dependency and the required version has been bumped to 1.3.0.
  • OTEL_LOG_LEVEL now also sets up the logging pipeline, thus diagnostic logging can now be enabled just by enabling it
    via the environment variable. The supported log level values are none, verbose, debug, info, warn, error.
    The logging pipeline can additionally be enabled by setting logLevel configuration option. #605.
  • process.command, process.command_line and process.runtime.description resource attributes have been removed from the automatic process detection. #613
  • OTEL_TRACES_EXPORTER now only supports otlp, console or both (e.g. OTEL_TRACES_EXPORTER=otlp,console).
    #599
  • Add support for OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_EXPORTER_OTLP_TRACES_PROTOCOL, OTEL_EXPORTER_OTLP_METRICS_PROTOCOL. The supported values are grpc (the default) or http/protobuf. #599 #614

v2.0.0-rc2

31 Oct 15:20
4dee58a
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.2.0 1.7.0 0.33.0

Changes

  • Omit setting the default endpoint for metrics, as OpenTelemetry OTLP metrics exporters already have their own default configuration #592

v2.0.0-rc1

31 Oct 11:03
7ee2d51
Compare
Choose a tag to compare
Open Telemetry API Core Instrumentations
1.2.0 1.7.0 0.33.0

Changes

  • Deprecate startTracing, startMetrics, startProfiling functions

    There is a new function called start, which can be used to start all 3 signals:

    const { start } = require('@splunk/otel');
    
    start({
      serviceName: 'my-node-service',
      metrics: true, // Sets up OpenTelemetry metrics pipeline for custom metrics
      profiling: true, // Enables CPU profiling
    });

    If you have been only been using tracing, then startTracing can be replaced like this:

    const { start } = require('@splunk/otel');
    
    start({
      serviceName: 'my-node-service',
      endpoint: 'http://collector:4317',
    });

    Signal-specific configuration options can still be passed in:

    const { start } = require('@splunk/otel');
    
    start({
      serviceName: 'my-node-service',
      tracing: {
        instrumentations: [
          // Custom instrumentation list
        ],
      },
      metrics: {
        runtimeMetricsEnabled: true,
      },
      profiling: {
        memoryProfilingEnabled: true,
      }
    });

    For all possible options see Advanced Configuration.

    The deprecated functions are still available, but using them will log a deprecation message.

  • Replace SignalFx metrics with OpenTelemetry metrics

    SignalFx metrics SDK has been removed and replaced with OpenTelemetry Metrics SDKs.
    The internal SignalFx client is no longer available to users, if you have been using custom metrics with the SignalFx client provided by Splunk OpenTelemetry JS distribution, see the migration guide for how to start using custom metrics via OpenTelemetry.

    Runtime metric names are now using OpenTelemetry conventions, the following is a list of changed metric names:

    SignalFx (no longer available) OpenTelemetry
    nodejs.memory.heap.total process.runtime.nodejs.memory.heap.total
    nodejs.memory.heap.used process.runtime.nodejs.memory.heap.used
    nodejs.memory.rss process.runtime.nodejs.memory.rss
    nodejs.memory.gc.size process.runtime.nodejs.memory.gc.size
    nodejs.memory.gc.pause process.runtime.nodejs.memory.gc.pause
    nodejs.memory.gc.count process.runtime.nodejs.memory.gc.count
    nodejs.event_loop.lag.max process.runtime.nodejs.event_loop.lag.max
    nodejs.event_loop.lag.min process.runtime.nodejs.event_loop.lag.min
  • Bundle instrumentations with the distribution

    It is no longer necessary to add instrumentation packages to your package.json file, unless you intend to use instrumentations not bundled in the distribution.

    For the list of instrumentations bundled by default see Default instrumentation packages.

  • Remove Jaeger exporter

    It is no longer possible to use the jaeger-thrift-splunk value for OTEL_TRACES_EXPORTER to send traces via Jaeger Thrift over HTTP.

    The default exporting format is still OTLP over gRPC, however it is now possible to use OTLP over HTTP by setting OTLP_TRACES_EXPORTER environment variable to otlp-splunk.

    If you want to keep using Jaeger exporter, you can use the @opentelemetry/exporter-jaeger package by specifying a custom span exporter for the tracing configuration:

    const { start } = require('@splunk/otel');
    const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
    
    start({
      serviceName: 'my-node-service',
      tracing: {
        spanExporterFactory: (options) => {
          return new JaegerExporter({
            serviceName: options.serviceName,
            // Additional config
          })
        }
      },
    });
  • Update OpenTelemetry SDKs

    Minimum Node.js version has been bumped to 14 due to OpenTelemetry SDKs dropping support for Node.js 12.