This topic documents the OpenTelemetry versions used by each LaunchDarkly observability SDK and the auto-instrumentation libraries available per language. Use this information to verify compatibility with your existing OpenTelemetry setup or to understand what telemetry is captured automatically versus what requires manual instrumentation.
The following table lists the core OpenTelemetry dependency versions for each SDK. These versions are current as of the latest SDK releases.
The LaunchDarkly observability SDKs bundle their own OpenTelemetry dependencies. If your application already uses OpenTelemetry, verify that the @opentelemetry/api version is compatible. The OpenTelemetry API follows semantic versioning, and the SDK is generally compatible with any @opentelemetry/api 1.x version.
Auto-instrumentation refers to libraries and frameworks that are automatically traced, logged, or metered by the SDK without requiring you to add manual instrumentation code. The level of auto-instrumentation support varies significantly by language.
The Node.js SDK uses @opentelemetry/auto-instrumentations-node (^0.62.0) which provides comprehensive auto-instrumentation for common Node.js libraries.
Automatically instrumented:
All libraries supported by @opentelemetry/auto-instrumentations-node are automatically instrumented, including:
Requires opt-in using environment variables:
@opentelemetry/instrumentation-fs): set LAUNCHDARKLY_OTEL_NODE_ENABLE_FILESYSTEM_INSTRUMENTATION=trueLAUNCHDARKLY_OTEL_NODE_ENABLE_OUTGOING_HTTP_INSTRUMENTATION=falseRequires additional dependency:
@prisma/instrumentation (>=5.0.0)The Python SDK uses OpenTelemetry’s auto-instrumentation framework and includes instrumentation packages for a wide range of libraries.
Automatically instrumented (standard libraries):
Automatically instrumented (AI/ML libraries):
Configuration:
disabled_instrumentations in ObservabilityConfig or the OTEL_PYTHON_DISABLED_INSTRUMENTATIONS environment variableinstrument_logging config parameterThe Ruby SDK uses opentelemetry-instrumentation-all (~0.62) for broad auto-instrumentation.
Automatically instrumented (with default configuration):
enable_recognize_route: true)db_statement: :include)/health, /healthz, /ready by default)All libraries in opentelemetry-instrumentation-all are available. The SDK calls config.use_all(), which activates instrumentation for any detected library. You can override the defaults by providing a custom instrumentation configuration.
The Go SDK does not include auto-instrumentation libraries. Go’s OpenTelemetry ecosystem uses explicit instrumentation.
Manual instrumentation required:
Built-in integration:
ldotel.NewTracingHook()To add instrumentation for specific libraries, use the corresponding OpenTelemetry Go contrib instrumentation packages and configure them alongside the observability plugin.
The .NET SDK includes several OpenTelemetry instrumentation packages by default.
Automatically instrumented (tracing):
Automatically instrumented (metrics):
Extension points:
WithExtendedTracingConfig() provides additional tracing instrumentationWithExtendedLoggingConfig() provides additional log sourcesWithExtendedMeterConfiguration() provides additional metric instrumentsThe Android SDK uses the OpenTelemetry Android SDK (0.11.0-alpha).
Automatically instrumented:
Opt-in:
Manual instrumentation required:
You can suppress specific auto-instrumentations using OtelRumConfig.suppressInstrumentation().
The React Native SDK includes limited auto-instrumentation.
Automatically instrumented:
Manual instrumentation required:
The browser SDK includes auto-instrumentation for browser-specific APIs.
Automatically instrumented:
addEventListener)Manual instrumentation required:
recordHeadersAndBody is true)Manual instrumentation required:
LDObserve APITo learn more about using manual instrumentation, read Recording metrics, Recording traces, Sending errors, and Sending logs.