EDOT SDKs
The EDOT SDKs are production-ready, customized distributions of OpenTelemetry language SDKs, specifically optimized for seamless integration with Elastic Observability. EDOT 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, EDOT SDKs provide improvements and bug fixes from Elastic before they become available in contrib OpenTelemetry repositories.
EDOT SDKs are available for the following programming languages and platforms:
This table provides an overview of the features available in the EDOT 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 EDOT Language SDKs according to Elastic's Support Policy. EDOT 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 EDOT SDKs. Other ingestion paths are not officially supported by Elastic.
Using EDOT 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 EDOT 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.
EDOT SDKs are licensed under the Apache License, Version 2.0.