---
title: Introduction to OpenTelemetry for Kubernetes
source: https://docs.newrelic.com/docs/kubernetes-pixie/k8s-otel/intro
---

New Relic's OpenTelemetry observability for Kubernetes provides a comprehensive, open-source solution for monitoring your clusters. It integrates seamlessly with our robust Kubernetes UI, which is compatible with both OpenTelemetry and our [proprietary Kubernetes instrumentation](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/get-started/introduction-kubernetes-integration). This provider-agnostic design allows you to choose the instrumentation method that best suits your needs.

This document guides you through monitoring a Kubernetes cluster using OpenTelemetry. It details how to install the [`nr-k8s-otel-collector`](https://github.com/newrelic/helm-charts/tree/master/charts/nr-k8s-otel-collector) Helm chart within your cluster and deploy the necessary collectors to enable comprehensive observability.

By integrating Kubernetes components into the OpenTelemetry Collector, we can transmit metrics, events, and logs directly to New Relic. These telemetry signals automatically enhance our out-of-the-box experiences such as the [Kubernetes Navigator](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/understand-use-data/kubernetes-cluster-explorer/#navigator-preview), [overview dashboard](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/understand-use-data/kubernetes-cluster-explorer/#cluster-overview-dashboard), [Kubernetes events](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/understand-use-data/kubernetes-cluster-explorer/#browse-your-kubernetes-events), or [Kubernetes APM summary page](https://docs.newrelic.com/docs/apm/apm-ui-pages/monitoring/kubernetes-summary-page/).

## How it works? [#how-works]

The [`nr-k8s-otel-collector`](https://github.com/newrelic/helm-charts/tree/master/charts/nr-k8s-otel-collector) Helm chart deploys OpenTelemetry Collectors configured to gather comprehensive telemetry data from your Kubernetes cluster.

![Architecture diagram showing OpenTelemetry Daemonset collectors on worker nodes pulling metrics from Kubelet and cAdvisor, and a Deployment collector pulling metrics from Kube-state-metrics, all processing data before sending to New Relic.](https://docs.newrelic.com/images/otel-k8s-arch.webp "Kubernetes OpenTelemetry architecture diagram")

-   **Daemonset Collector**: Deployed on each worker node. It collects metrics from the underlying host, `cAdvisor`, and `Kubelet`, and gathers logs from containers.
-   **Deployment Collector**: Deployed on the control plane node. It collects metrics from `kube-state-metrics` and Kubernetes cluster events. This collector is often a single instance managing cluster-wide data.

### OpenTelemetry components in New Relic Kubernetes collectors [#otel-components]

The OpenTelemetry Collector employs various component types to process and transform the collected telemetry data. These components are essential for enriching, filtering, and formatting the data before it is sent to New Relic. You can use these components to add your own custom configurations by creating OpenTelemetry Pipelines using `extra_config` section in the Helm chart.

| Component type | Component name                | Purpose                                                                                       | Collector                                                                                                                                                                                                                                                                |
| -------------- | ----------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Receivers      | `OTLP`                        | Gathers telemetry transmitted over HTTP.                                                      | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `prometheus/ksm`              | Scrapes metrics relevant to Kubernetes resource states, such as deployments, pods, and nodes. | [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml)                                                                                                                                     |
|                | `prometheus/controlplane`     | Monitors control plane components.                                                            | [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml)                                                                                                                                     |
|                | `k8s_events`                  | Scrapes events like pod creations and deletions, scaling activities, and failure events.      | [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml)                                                                                                                                     |
|                | `hostmetrics`                 | Scrapes metrics from the underlying node.                                                     | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml)                                                                                                                                       |
|                | `kubeletstats`                | Scrapes metrics from Kubelet.                                                                 | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml)                                                                                                                                       |
|                | `prometheus`                  | Scrapes metrics from cAdvisor.                                                                | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml)                                                                                                                                       |
|                | `filelog`                     | Gathers logs from containers.                                                                 | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml)                                                                                                                                       |
| Processors     | `batch`                       | Batches and optimizes telemetry data flow.                                                    | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `groupbyattrs`                | Groups metrics, span and logs.                                                                | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `transform` `metrictransform` | Modifies telemetry to customize ingest.                                                       | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `filter`                      | Optimizes ingest by removing not relevant telemetry.                                          | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `resource`                    | Applies changes on resource attributes.                                                       | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `resourcedetection`           | Detects resource information.                                                                 | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `k8sattributes`               | Enriches telemetry data with K8s attributes.                                                  | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `attributes`                  | Enriches telemetry with attributes.                                                           | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `cumulativetodelta`           | Transforms cumulative metrics to delta.                                                       | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `memory_limiter`              | Manages memory consumption.                                                                   | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
|                | `batch`                       | Batches and optimizes telemetry data flow.                                                    | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
| Exporters      | `otlphttp/newrelic`           | Sends telemetry data using the OpenTelemetry Protocol to New Relic.                           | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
| Pipelines      | `metrics`                     | Manages ingest, process, and export of metrics data.                                          | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |
| Connectors     | `routing/nr_pipelines`        | Enriches telemetry data with Kubernetes metadata.                                             | [`Daemonset`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/daemonset-configmap.yaml), [`Deployment`](https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/templates/deployment-configmap.yaml) |

## Related articles [#related-docs]

[Install OpenTelemetry Collector for Kubernetes](https://docs.newrelic.com/docs/kubernetes-pixie/k8s-otel/install/)

Instrument your Kubernetes Cluster in New Relic using OpenTelemetry Collectors.

[Advanced configuration for OpenTelemetry Kubernetes](https://docs.newrelic.com/docs/kubernetes-pixie/k8s-otel/advance-config/)

Customize your OpenTelemetry Collector configuration for Kubernetes in New Relic.

[Troubleshooting OpenTelemetry for Kubernetes](https://docs.newrelic.com/docs/kubernetes-pixie/k8s-otel/troubleshooting/)

Learn how to troubleshoot issues with the OpenTelemetry Collector in Kubernetes.
