Releases: signalfx/splunk-otel-js
v2.3.0
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
andOTEL_INSTRUMENTATION_[NAME]_ENABLED
. #769
v2.2.4
v2.2.3
v2.2.2
v2.2.1
Open Telemetry API | Core | Instrumentations |
---|---|---|
1.3.0 | 1.10.1 | 0.35.1 |
Changes
April 5, 2023
- Fixed
@opentelemetry/instrumentation-mongoose
not being loaded. #715
v2.2.0
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 viaSPLUNK_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 tofalse
. 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
v2.0.0
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 to1.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 arenone
,verbose
,debug
,info
,warn
,error
.
The logging pipeline can additionally be enabled by settinglogLevel
configuration option. #605.process.command
,process.command_line
andprocess.runtime.description
resource attributes have been removed from the automatic process detection. #613OTEL_TRACES_EXPORTER
now only supportsotlp
,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 aregrpc
(the default) orhttp/protobuf
. #599 #614
v2.0.0-rc2
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
Open Telemetry API | Core | Instrumentations |
---|---|---|
1.2.0 | 1.7.0 | 0.33.0 |
Changes
-
Deprecate
startTracing
,startMetrics
,startProfiling
functionsThere 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 forOTEL_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 tootlp-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.