OpenTelemetry versions by SDK
The following table lists the core OpenTelemetry dependency versions for each SDK. These versions are current as of the latest SDK releases.Version compatibilityThe 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 by SDK
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.Node.js (server-side)
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:
- HTTP / HTTPS (incoming and outgoing requests)
- Express, Fastify, Hapi, Koa, Restify
- GraphQL
- MySQL, MySQL2, PostgreSQL (pg), MongoDB, Redis, Memcached
- gRPC
- AWS SDK
- DNS
- Pino (log correlation with trace/span IDs)
- Filesystem (
@opentelemetry/instrumentation-fs): setLAUNCHDARKLY_OTEL_NODE_ENABLE_FILESYSTEM_INSTRUMENTATION=true - Outgoing HTTP: enabled by default, disable with
LAUNCHDARKLY_OTEL_NODE_ENABLE_OUTGOING_HTTP_INSTRUMENTATION=false
- Prisma ORM: install
@prisma/instrumentation(>=5.0.0)
Python
The Python SDK uses OpenTelemetry’s auto-instrumentation framework and includes instrumentation packages for a wide range of libraries. Automatically instrumented (standard libraries):- Django, FastAPI, Flask, Starlette
- requests, urllib, urllib3, httpx, aiohttp
- SQLAlchemy, psycopg, psycopg2, sqlite3
- Redis, Celery, gRPC
- Boto / Boto3 (AWS SDK)
- Jinja2, logging, system metrics
- OpenAI, Anthropic
- LangChain, LlamaIndex, Haystack
- Amazon Bedrock, Google Vertex AI
- Cohere, Replicate, Transformers
- ChromaDB, Pinecone, Weaviate, Qdrant
- Disable specific instrumentations with
disabled_instrumentationsinObservabilityConfigor theOTEL_PYTHON_DISABLED_INSTRUMENTATIONSenvironment variable - Control log instrumentation separately with the
instrument_loggingconfig parameter
Ruby
The Ruby SDK usesopentelemetry-instrumentation-all (~0.62) for broad auto-instrumentation.
Automatically instrumented (with default configuration):
- Rails (
enable_recognize_route: true) - ActiveRecord (
db_statement: :include) - Net::HTTP
- Rack (excludes
/health,/healthz,/readyby default)
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.
Go
The Go SDK does not include auto-instrumentation libraries. Go’s OpenTelemetry ecosystem uses explicit instrumentation. Manual instrumentation required:- HTTP handlers and clients
- Database drivers
- gRPC
- Any application-specific logic
- LaunchDarkly SDK flag evaluation tracing via
ldotel.NewTracingHook()
.NET (server-side)
The .NET SDK includes several OpenTelemetry instrumentation packages by default. Automatically instrumented (tracing):- ASP.NET Core (or ASP.NET for .NET Framework)
- HTTP Client (System.Net.Http)
- gRPC Client
- SQL Client
- WCF
- Quartz.NET
- Runtime metrics (GC, thread pool, JIT)
- Process metrics (CPU, memory, handles)
- HTTP Client metrics
- ASP.NET Core metrics
- SQL Client metrics
WithExtendedTracingConfig()provides additional tracing instrumentationWithExtendedLoggingConfig()provides additional log sourcesWithExtendedMeterConfiguration()provides additional metric instruments
Android
The Android SDK uses the OpenTelemetry Android SDK (0.11.0-alpha). Automatically instrumented:- Application crashes (crash reporting)
- Activity lifecycle events
- Application launch time tracking
- Network requests
- Custom spans and metrics
OtelRumConfig.suppressInstrumentation().
React Native
The React Native SDK includes limited auto-instrumentation. Automatically instrumented:- Fetch API requests
- XMLHttpRequest requests
- Navigation/routing events
- Custom spans, logs, and metrics
JavaScript (browser)
The browser SDK includes auto-instrumentation for browser-specific APIs. Automatically instrumented:- Document load and resource timing
- User interactions (click events via
addEventListener) - Page navigation (History API changes)
- Fetch API requests
- XMLHttpRequest requests
- Console messages
- JavaScript errors
- Custom business logic spans
- Custom metrics
- WebSocket message content (connection events are automatic when
recordHeadersAndBodyistrue)
iOS
Manual instrumentation required:- All traces, logs, and metrics must be recorded using the
LDObserveAPI