﻿---
title: APM services missing due to misconfigured elasticapmconnector
description: Troubleshoot missing APM services and metrics in Kibana when the elasticapm connector is incorrectly placed under processors instead of connectors in your OTel Collector configuration.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/6826/troubleshoot/ingest/opentelemetry/edot-collector/misconfigured-elasticapm-connector
products:
  - Elastic Distribution of OpenTelemetry Collector
  - Elastic Observability
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Distribution of OpenTelemetry Collector: Generally available
---

# APM services missing due to misconfigured elasticapmconnector
If APM services and metrics don't appear in Kibana despite a healthy-looking traces pipeline, check the `elasticapmconnector` for misconfiguration. This is one of the most common causes of a silent, empty APM UI when using the EDOT Collector with direct Elasticsearch ingestion.
<note>
  This page applies when exporting directly to Elasticsearch using the `elasticsearch` exporter (typically with `mapping.mode: otel`). If you're sending data to the [Managed OTLP endpoint](https://docs-v3-preview.elastic.dev/elastic/opentelemetry/tree/main/reference/motlp) or APM Server or the managed intake service using OTLP, neither the `elasticapmprocessor` nor the `elasticapmconnector` is required.
</note>

For general no-data troubleshooting, refer to [No logs, metrics, or traces visible in Kibana](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/6826/troubleshoot/ingest/opentelemetry/no-data-in-kibana).

## Symptoms

The pipeline looks healthy, but no APM data reaches Kibana:
- Collector traces pipeline runs without errors
- Traces are exported successfully (no errors in the Collector logs)
- No APM services, transactions, or service map entries appear in Kibana APM
- APM metrics data streams remain empty


## Causes

There are two distinct `elasticapm` components in the EDOT Collector:
- **`elasticapm` processor**, which enriches OpenTelemetry spans with Elastic-specific attributes. Declare it under `processors`.
- **`elasticapm` connector**, which generates pre-aggregated APM metrics from trace data. Declare it under `connectors`. This component is used as an exporter in the `traces` pipeline, and as a receiver in a dedicated `metrics` pipeline.

A common misconfiguration is placing the connector under `processors` instead of `connectors`, or omitting the connector declaration entirely. Because the traces pipeline continues to function even without the connector, the Collector logs no errors. However, APM metrics are never produced, so service maps, transaction histograms, and service-level indicators don't appear in Kibana.

## Resolution

<stepper>
  <step title="Check that the connector is declared under `connectors`">
    Open your Collector configuration and confirm `elasticapm` appears under `connectors`, not only under `processors`:
    ```yaml
    connectors:
      elasticapm: {}
    ```
  </step>

  <step title="Wire the connector as an exporter in `traces` and a receiver in `metrics` pipeline">
    The `elasticapmconnector` must appear in two places in `service.pipelines`: as an exporter in `traces` (to receive trace data and generate metrics) and as a receiver in a separate `metrics` pipeline (to forward those metrics to Elasticsearch):
    ```yaml
    processors:
      elasticapm: {}  

    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch, elasticapm]         
          exporters: [elasticapm, elasticsearch/otel]  
        metrics/aggregated-otel-metrics:
          receivers: [elasticapm]                 
          processors: []
          exporters: [elasticsearch/otel]
    ```
    For the complete configuration example, refer to [Elastic APM connector](https://docs-v3-preview.elastic.dev/elastic/elastic-agent/tree/main/reference/edot-collector/components/elasticapmconnector).
  </step>

  <step title="Restart the Collector and verify">
    Restart the Collector after updating your configuration. Wait a few minutes for data to accumulate, then check Kibana APM for services and service maps.
  </step>
</stepper>

If data still doesn't appear, refer to [Enable debug logging](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/6826/troubleshoot/ingest/opentelemetry/edot-collector/enable-debug-logging) to increase Collector verbosity and check for export errors.

## Resources

- [Elastic APM connector reference](https://docs-v3-preview.elastic.dev/elastic/elastic-agent/tree/main/reference/edot-collector/components/elasticapmconnector)
- [No logs, metrics, or traces visible in Kibana](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/6826/troubleshoot/ingest/opentelemetry/no-data-in-kibana)