Required role

The Admin role or higher is required to use APM agents. To learn more, refer to Assign user roles and privileges.

Elastic APM agents automatically measure application performance and track errors. They offer built-in support for popular frameworks and technologies, and provide easy-to-use APIs that allow you to instrument any application.

Elastic APM agents are built and maintained by Elastic. While they are similar, different programming languages have different nuances and requirements. Select your preferred language below to learn more about how each agent works.

Elastic APM Java agent

The Elastic APM Java agent auto-instruments supported technologies and records interesting events, like spans for database queries and transactions for incoming HTTP requests. To do this, it leverages the capability of the JVM to instrument the bytecode of classes. This means that for the supported technologies, there are no code changes required.

Spans are grouped in transactions—by default, one for each incoming HTTP request. But it's possible to create custom transactions not associated with an HTTP request. Transactions and Spans are sent to Elastic, where they're transformed, stored, and ready to be visualized.

Learn more

If you're ready to give Elastic APM a try, see Get started with traces and APM.

See the Java agent reference for full documentation, including:


Not all APM agent configuration options are compatible with Elastic Cloud serverless.

Minimum supported versions

The following versions of Elastic APM agents are supported:

Agent nameAgent version
APM AWS Lambda extension
Go agent
Java agent
.NET agent
Node.js agent
PHP agent
Python agent
Ruby agent


Some recently added features may require newer agent versions than those listed above. In these instances, the required APM agent versions will be documented with the feature.

On this page