Elastic OTel SDKs
The Elastic OTel SDKs are production-ready, customized distributions of OpenTelemetry language SDKs, specifically optimized for seamless integration with Elastic Observability. Elastic OTel SDKs provide a comprehensive observability solution that automatically captures distributed traces, metrics, and logs from your applications with minimal configuration.
While maintaining full compatibility with the OpenTelemetry specification, Elastic OTel SDKs provide improvements and bug fixes from Elastic before they become available in contrib OpenTelemetry repositories.
Elastic OTel SDKs are available for the following programming languages and platforms:
This table provides an overview of the features available in the Elastic OTel SDKs across different programming languages.
| Feature | .NET | Java | Node.js | PHP | Python | Android | iOS | Browser |
|---|---|---|---|---|---|---|---|---|
| Distributed tracing | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | 𝐓 0.1.0+ |
| Service map | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ v1.0+ | 𝐓 0.1.0+ |
| Zero-code instrumentation | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ❌ | ❌ | ❌ |
| Head-based sampling | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.1+ | ✅ v1.0+ | 𝐓 0.1.0+ |
| Baggage | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ❌ | ✅ v1.0+ | 𝐓 0.1.0+ |
| Inferred spans | ❌ | ✅ 1.0+ | ❌ | 𝐓 1.0+ | ❌ | ❌ | ❌ | ❌ |
| Logs collection | ✅ 1.0+ | ✅ 1.0+ | 𝐓 1.0+ | ✅ 1.0+ | 𝐓 1.0+ | ✅ 1.0+ | ✅ v1.0+ | 𝐓 0.1.0+ |
| Logs correlation | ✅ 1.0+ | ✅ 1.0+ | 𝐓 1.0+ | ✅ 1.0+ | 𝐓 1.0+ | ✅ 1.0+ | ✅ v1.0+ | 𝐓 0.1.0+ |
| Metrics collection | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | 𝐓 v0.7+ | 𝐓 0.1.0+ |
| Custom metrics | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | 𝐓 v0.7+ | 𝐓 0.1.0+ |
| Agent health monitoring | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Runtime metrics | ✅ 1.0+1 | ✅ 1.0+1 | 𝐓 1.0+1 | ❌ | ❌ | ❌ | ❌ | ➖ |
| Capturing errors / exceptions | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.0+ | ✅ v1.0+ | 𝐓 0.1.0+ |
| Crash reporting | ➖ | ➖ | ➖ | ➖ | ➖ | ✅ 1.6.0+ | ✅ v1.0+ | ➖ |
| Central configuration | 𝐓 1.4.0+ | 𝐓 1.5.0+ | 𝐓 1.2.0+ | 𝐓 1.1.0+ | 𝐓 1.4.0+ | 𝐓 1.2.0+ | 𝐓 1.4.0+ | ❌ |
| Profiling integration | ❌ | 𝐓 1.0+ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| TLS for OTLP endpoint | ✅ 1.0+ | ✅ 1.0+ | ✅ 1.6+ | ✅ 1.2+ | ✅ 1.0+ | ✅ 1.0+2 | ✅ v1.0+2 | 𝐓 0.1.0+ |
| TLS for OpAMP endpoint | 𝐓 1.4.0+3 | ❌ | ✅ 1.7.0+ | ✅ 1.2.0+ | ✅ 1.10.0+ | ✅ 1.2.0+2 | ✅ v1.4.0+2 | ❌ |
Legend:
- ✅ Generally available
- 𝐓 In technical preview
- ➖ Not applicable
- ❌ Not available
Elastic provides technical support for Elastic OTel Language SDKs according to Elastic's Support Policy. Elastic OTel SDKs are meant to be used in combination with the Elastic Agent or the Elastic Cloud Managed OTLP Endpoint to ingest data into Elastic solutions from the Elastic OTel SDKs. Other ingestion paths are not officially supported by Elastic.
Using Elastic OTel SDKs directly with APM Server's OpenTelemetry intake endpoint is not supported.
While some data might ingest, Elastic doesn't guarantee:
- Correctness of attributes
- Alignment with Elastic OpenTelemetry processing pipelines
- Enrichment (service metadata, environment, runtime info, and so on)
- Troubleshooting coverage
If you require a supported setup, route SDK telemetry through Elastic Agent or use Managed OTel intake.
Avoid using Elastic OTel SDKs alongside any other APM agent, including Elastic APM agents. Running multiple agents in the same application process might lead to conflicting instrumentation, duplicate telemetry, or other unexpected behavior.
Elastic OTel SDKs are licensed under the Apache License, Version 2.0.