Loading

Elastic APM Intake OpenTelemetry Input Package

Version 0.1.0 (View all)
Subscription level
What's this?
Basic
Developed by
What's this?
Elastic
Minimum Kibana version(s) 9.4.0
The Elastic APM Intake OpenTelemetry Input Package integration v0.1.0 is in technical preview

To use pre-release integrations, go to the Integrations page in Kibana, scroll down, and toggle on the Display beta integrations option.

The Elastic APM Intake OpenTelemetry Input Package enables the EDOT (Elastic Distribution of OpenTelemetry) Collector to receive APM data from Elastic APM agents using the elasticapmintakereceiver.

This package allows existing Elastic APM agents to send telemetry data to an OpenTelemetry Collector instead of directly to APM Server, enabling integration with OpenTelemetry-based observability pipelines.

This package configures the elasticapmintakereceiver in the EDOT Collector to accept HTTP data via the APM Intake V2 format. Elastic APM agents can then be configured to point to the collector endpoint instead of APM Server.

The receiver accepts traces, metrics, and logs from Elastic APM agents and forwards them through the OpenTelemetry pipeline for processing and export to Elasticsearch.

This integration collects APM telemetry data from Elastic APM agents:

Data Type Description
Traces Distributed tracing data including spans and transactions
Metrics Application performance metrics
Logs Application logs correlated with traces
  • Elastic Stack version 9.4.0 or later is required
  • Only the APM Intake V2 protocol is supported
  • RUM (Real User Monitoring) intake and earlier protocols are not supported
  • Compatible with Elastic APM agents that support the Intake V2 protocol
  • Elastic Stack version 9.4.0 or later
  • Elastic Agent with EDOT Collector support
  • Elastic APM agents configured to send data to the collector endpoint

Elastic Agent must be installed. For more details, check the Elastic Agent installation instructions. You can install only one Elastic Agent per host.

Configure the following settings:

  1. Endpoint: The address where the receiver listens for APM agent connections (default: localhost:8200). The default only accepts connections from the same host. To accept traffic from remote APM agents, set this to 0.0.0.0:8200 or a specific bind IP/port reachable by your agents.
  2. TLS Settings (optional): Enable TLS for encrypted connections between APM agents and the receiver. When Enable TLS is on, both the TLS Certificate File and TLS Key File must be provided; the TLS Client CA File enables mutual TLS.
  3. API key authentication (optional): Validate APM API keys via the apikeyauth extension. Requires the Elasticsearch endpoint used for API key validation; if missing, the receiver fails to start.
  4. Data Stream Dataset (optional): Override the dataset used to route APM data into Elasticsearch. Defaults to elasticapmintakereceiver.
  • Agent Configuration: Fetching APM Central Configurations from Elasticsearch is not supported. The receiver's agent config feature requires an Elasticsearch connection that this package does not expose. The Enable Agent Configuration option must remain disabled.

Configure your Elastic APM agents to point to the collector:

# Example environment variables for APM agents
ELASTIC_APM_SERVER_URL=http://localhost:8200
		

For TLS-enabled connections:

ELASTIC_APM_SERVER_URL=https://localhost:8200
ELASTIC_APM_SERVER_CERT=/path/to/server.crt
		

Once configured, you can verify data is being received by checking for APM documents in Elasticsearch:

  1. Navigate to Kibana > Discover
  2. Search for APM-related indices (for example, traces-*, metrics-*, logs-*)
  3. Verify that documents from your instrumented applications appear

For help with Elastic ingest tools, check Common problems.

  • Connection refused: Ensure the endpoint is accessible from the APM agents
  • TLS errors: Verify certificate paths and that the APM agent trusts the server certificate
  • No data appearing: Check that APM agents are using the Intake V2 protocol

For more information on architectures that can be used for scaling this integration, check the Ingest Architectures documentation.

This package uses the Elastic APM Intake Receiver from the Elastic OpenTelemetry Collector Components. For the supported signal types (traces, metrics, logs) and field mappings, see the receiver's metadata.yaml and README.md.