﻿---
title: Kubernetes Pods and Docker Containers views empty when using Elastic OpenTelemetry
description: Learn why the Kubernetes Pods and Docker Containers views in the Infrastructure Inventory are empty when using {{edot}}, and how to resolve it.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/9070/troubleshoot/observability/troubleshooting-infrastructure-monitoring/kubernetes-pods-docker-containers-empty-otel
products:
  - Elastic Documentation
  - Elastic Observability
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available since 9.2
---

# Kubernetes Pods and Docker Containers views empty when using Elastic OpenTelemetry
After configuring Elastic Agent to monitor a Kubernetes cluster on version 9.2 or later, several views in the Kibana Infrastructure Inventory might appear empty.

## Symptoms

Under **Observability → Infrastructure → Inventory**, the **Docker Containers** view shows no data, and so do the main summary metrics (CPU, memory, traffic) at the top of the Inventory page.
<note applies-to="Elastic Cloud Serverless: Removed, Elastic Stack: Planned for removal, Elastic Stack: Generally available from 9.2 to 9.5">
  Like the **Docker Containers** view, the **Kubernetes Pods** view shows no data. From 9.6, the **Kubernetes Pods** view supports OpenTelemetry, so an empty view has a different cause. Refer to [Resolution for Kubernetes Pods](#resolution-kubernetes-pods-empty-otel) for how to troubleshoot it on 9.6 and later.
</note>

The **Hosts** view (also under **Inventory**) works correctly and displays data.

## Cause

For the Docker Containers view, this is expected behavior, not a configuration error in Elastic Agent.
In version 9.2.0, the `inframetrics` processor was removed from the Elastic Agent Helm charts for Kubernetes and on-premises deployments. Without this processor, data shipped by Elastic OpenTelemetry is not in the format the Docker Containers view of the Infrastructure UI expects.
<note applies-to="Elastic Cloud Serverless: Removed, Elastic Stack: Planned for removal, Elastic Stack: Generally available from 9.2 to 9.5">
  The Kubernetes Pods view is affected for the same reason. From 9.6, the Infrastructure UI reads Kubernetes pod metrics collected by the `kubeletstats` receiver directly, so this cause no longer applies to pods.
</note>


## Resolution for Kubernetes Pods

<applies-to>
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Planned
</applies-to>

The Infrastructure UI shows Kubernetes pods collected using OpenTelemetry. If the **Kubernetes Pods** view is empty, check the following:
<stepper>
  <step title="Check the selected schema">
    Set **Show** to **Kubernetes Pods** and confirm the **Schema** menu is set to **OpenTelemetry**. If it's set to **Elastic System Integration**, you only see pods collected by the Kubernetes integration. Refer to [Select the data collection schema](/elastic/docs-content/pull/9070/solutions/observability/infra-and-hosts/view-infrastructure-metrics-by-resource-type#pod-schema-selector) for how the **Schema** menu works.
  </step>

  <step title="Check your time range">
    The **Schema** menu only offers the schemas that have data in the current time range. Widen the time range if you expect OpenTelemetry pods but can't select the schema.
  </step>

  <step title="Check that pod metrics are arriving">
    Confirm that documents with `data_stream.dataset: kubeletstatsreceiver.otel` exist for your time range. If none exist, verify the `kubeletstats` receiver in your Collector configuration. Refer to the [default Kubernetes configuration](https://docs-v3-preview.elastic.dev/elastic/elastic-agent/tree/main/reference/edot-collector/config/default-config-k8s) for the expected receiver settings.
  </step>

  <step title="Check Group by">
    Switching **Schema** doesn't clear **Group by**. A field left over from the other schema can leave the map empty. Clear or reselect **Group by**.
  </step>
</stepper>


## Resolution for Docker Containers

Use the out-of-the-box dashboards provided by the Kubernetes and System OpenTelemetry Assets integrations.
<stepper>
  <step title="Install the required integrations">
    Use one of these methods:
    - **Recommended: Use the Kibana Add Data wizard**
      1. In Kibana, click **Add Data** on the Observability home page.
    2. Select **Kubernetes**.
    3. Choose the **OpenTelemetry: Full Observability** guide.
    4. The wizard automatically installs the [Kubernetes OpenTelemetry Assets](https://docs-v3-preview.elastic.dev/elastic/integration-docs/tree/main/reference/kubernetes_otel) package and provides the correct configuration steps for Elastic Agent.
    - **Manual installation**
      1. In Kibana, go to **Data management → Integrations**.
    2. Search for and install the [Kubernetes OpenTelemetry Assets](https://docs-v3-preview.elastic.dev/elastic/integration-docs/tree/main/reference/kubernetes_otel) integration.
    3. Repeat for the **System OpenTelemetry Assets** integration, which is required for host-level metrics on the nodes.
  </step>

  <step title="Access the dashboards">
    1. In Kibana, go to **Dashboards**.
    2. In the search bar, type `OTEL`.
    3. Select the **OTEL][Metrics Kubernetes] Cluster Overview** dashboard to view your cluster's performance.
  </step>
</stepper>

For a full end-to-end setup guide, refer to [Quickstart: Unified Kubernetes Observability with Elastic OpenTelemetry](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/9070/solutions/observability/get-started/quickstart-unified-kubernetes-observability-with-elastic-distributions-of-opentelemetry-edot).
On Elastic Stack versions before 9.6, use these dashboards for Kubernetes pods as well.

## Workaround

You can re-add the `inframetrics` processor as it was configured in versions 9.1.x YAML and Helm charts for the Elastic OpenTelemetry Kubernetes use case. This is not recommended — the future-proof solution is to use the OpenTelemetry Assets dashboards.