Kubernetes monitoring using OpenTelemetry
Kubernetes environments are dynamic and complex, with numerous microservices, pods, nodes, and other resources constantly interacting. Monitoring Kubernetes with OpenTelemetry provides a powerful, vendor-neutral approach to gaining deep observability into your containerized applications and infrastructure.
Key components for Kubernetes monitoring with OpenTelemetry
The core of OpenTelemetry monitoring in Kubernetes revolves around the two main types of OpenTelemetry Collector and the receivers that are associated with the collectors.
Types of OpenTelemetry Kubernetes Collectors
- DaemonSet Collector
- Deployed on each node to collect telemetry related to nodes, pods, and containers running on that node.
- DeploymentSet Collector
- A single instance for cluster-level metrics and events, such as Kubernetes API server metrics.
Types of Receivers for OpenTelemetry Kubernetes Collector
- Kubeletstats Receiver
- Gathers metrics about the node, container memory usage, pod CPU usage, and node network errors directly from the Kubelet API server on each node.
- Kubernetes Cluster Receiver
- Collects cluster-level metrics and entity events about the cluster as a whole using the Kubernetes API server (e.g., pod phases, node conditions)
Types of processors for the OpenTelemetry Kubernetes Collector
- Kubernetes Attributes Processor
- Automatically discovers Kubernetes pods, extracts metadata (like pod name, namespace, node name, deployment name, pod UID), and adds this context to spans, metrics, and logs. This is crucial for correlating application telemetry with Kubernetes infrastructure data.
Types of deployment modes for the OpenTelemetry Kubernetes Collector
-
Helms
Chart
- The official OpenTelemetry Helm chart provides a straightforward and flexible way to deploy the OpenTelemetry Collector on Kubernetes.
-
Kubernetes
Operator
- The OpenTelemetry Operator is a Kubernetes Operator that extends the Kubernetes API to automate the management of OpenTelemetry components. It introduces a new custom resource definition (CRD), OpenTelemetryCollector, that simplifies the deployment process.
You can seamlessly integrate Instana with OpenTelemetry to effectively monitor your Kubernetes environment. Instana supports data ingestion from OpenTelemetry Kubernetes in two distinct ways.