Loading

Elastic APM intake receiver

Stack Serverless Observability

The Elastic APM intake receiver is an OpenTelemetry Collector component that receives APM data from classic Elastic APM Agents. The receiver supports the Elastic Intake v2 protocol and behaves like the Elastic APM Server, so that telemetry is stored in the same format and using the same indices while going through the Collector. This allows users of classic APM agents to gradually migrate to OpenTelemetry and adapt their instrumentation to the new OTel-based approach.

Important

Real user monitoring (RUM) intake and older intake protocols are not supported.

To use the Elastic APM intake receiver, include it in the receiver definitions of the Collector configuration:

receivers:
  elasticapmintake:
    agent_config:
      enabled: false

The Elastic APM intake receiver supports standard HTTP server configuration, including TLS/mTLS and authentication.

You can turn on TLS or mutual TLS to encrypt data in transit between Elastic APM agents and the receiver. Refer to OpenTelemetry TLS server configuration for more details.

For example:

receivers:
  elasticapmintake:
    tls:
      cert_file: server.crt
      key_file: server.key
    agent_config:
      enabled: false

Refer to OpenTelemetry TLS server configuration for more details.

In addition to TLS, you can configure authentication to make sure that only authorized agents can send data to the receiver. The Elastic APM intake receiver supports any configauth authenticator.

Use the recommendedapikeyauth extension to validate Elastic APM API keys. For example:

extensions:
  apikeyauth:
    endpoint: "<YOUR_ELASTICSEARCH_ENDPOINT>"
    application_privileges:
      - application: "apm"
        privileges:
          - "event:write"
        resources:
          - "-"
receivers:
  elasticapmintake:
    auth:
      authenticator: apikeyauth
    tls:
      cert_file: server.crt
      key_file: server.key
    agent_config:
      enabled: false

The Elastic APM intake receiver supports the following environment variables:

  • ELASTIC_APM_API_KEY: The API key to use for authentication.
  • ELASTIC_APM_SERVER_URL: The URL of the Elastic APM server.
  • ELASTIC_APM_SERVER_CERT: The path to the server certificate file.