Loading

Collect application data

Note

For Observability Serverless projects, the Admin role or higher is required to send APM data to Elastic. To learn more, refer to Assign user roles and privileges.

Use Elastic APM agents or an OpenTelemetry language SDK to instrument a service in the language its written in:

  • 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. Elastic offers Elastic OpenTelemetry, which are customized versions of OpenTelemetry language SDKs that are optimized to work with an Elastic backend.
  • Elastic APM agents: Elastic APM agents are instrumentation libraries written in the same language as your service.

Not sure which method is right for you? Compare the available options.

Elastic OpenTelemetry Elastic APM agent
Support level Fully supported for available languages Fully supported
Data protocol OpenTelemetry protocol (OTLP) Elastic protocol
Central configuration Supported
Refer to Central configuration
Supported
Refer to APM agent central configuration

For a comparison of Elastic OpenTelemetry and APM data streams, refer to Comparison with classic APM data streams.

Language Elastic OpenTelemetry Elastic APM agent
Android Elastic OTel Android Not available
Go Not available Go agent
iOS Elastic OTel iOS Not available
Java Elastic OTel Java Java agent
.NET Elastic OTel .NET .NET agent
Node.js Elastic OTel Node.js Node.js agent
PHP Elastic OTel PHP PHP agent
Python Elastic OTel Python Python agent
Ruby Not available Ruby agent

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.
  • Jaeger (deprecated): Helps you to switch an existing Jaeger setup from the default Jaeger backend to the Elastic Stack. Read more in Integrate with Jaeger.