Collect application data
Language-specific options ¶
Use Elastic APM agents or an OpenTelemetry language SDK to instrument a service in the language its written in:
- Elastic APM agents: Elastic APM agents are instrumentation libraries written in the same language as your service.
- OpenTelemetry: OpenTelemetry is an open source set of APIs, SDKs, tooling, and integrations that enable the capture and management of telemetry data from your services and applications.
- This option includes Elastic Distributions of OpenTelemetry, which are customized versions of OpenTelemetry language SDKs that are optimized to work with an Elastic backend.
Not sure which method is right for you? Compare the available options below.
Capabilities ¶
Elastic APM agent | Elastic Distribution of OpenTelemetry | |
---|---|---|
Support level | Fully supported | Mixed support Refer to the availability table |
Data protocol | Elastic protocol | OpenTelemetry protocol (OTLP) |
Central configuration | Supported Refer to APM agent central configuration |
Not supported |
Availability ¶
Language | Elastic APM agent | Elastic Distributions of OpenTelemetry (EDOT) |
Android | Android agent | |
Go | Go agent | |
iOS | iOS agent | |
Java | Java agent | EDOT Java |
.NET | .NET agent | [preview] EDOT .NET |
Node.js | Node.js agent | [preview] EDOT Node.js |
PHP | PHP agent | [preview] EDOT PHP |
Python | Python agent | [preview] EDOT Python |
Ruby | Ruby agent |
Service-specific options ¶
Elastic also offers several tools to help you collect data from specific services:
- Kubernetes: The Elastic APM attacher for Kubernetes simplifies the instrumentation and configuration of your application pods. Read more in the APM attacher for Kubernetes docs.
- AWS Lambda Functions: Helps you monitor your AWS Lambda functions. Read more in the APM Architecture for AWS Lambda docs.
- [8.15.0] Jaeger: Helps you to switch an existing Jaeger setup from the default Jaeger backend to the Elastic Stack. Read more in Integrate with Jaeger.