Veröffentlicht
08.05.2025
Technologie OpenTelemetry Kubernetes

Der OpenTelemetry Collectors in Kubernetes

Im Rahmen der vertieften Auseinandersetzung mit OpenTelemetry folgt nun ein Blick auf eine zentrale Komponente: den OpenTelemetry Collector. Dieser spielt eine entscheidende Rolle innerhalb der Architektur und stellt einen zentralen Dienst zur Verfügung, der Telemetriedaten empfangen, verarbeiten und weiterleiten kann. In Kubernetes-Umgebungen erleichtert der OpenTelemetry Operator die Bereitstellung und Verwaltung dieses Collectors erheblich.

Was ist der OpenTelemetry Collector?

Der OpenTelemetry Collector ist ein herstellerneutraler Dienst, der Telemetriedaten wie Logs, Metriken und Traces sammelt, verarbeitet und an verschiedene Zielsysteme exportieren kann. Er fungiert als Vermittler zwischen instrumentierten Applikationen und Observability-Backends wie Jaeger, Prometheus oder OpenSearch.

Durch den Einsatz eines Collectors müssen Applikationen ihre Daten nicht mehr direkt an ein Backend senden. Stattdessen erfolgt die Kommunikation zentral über den Collector, der die Daten optional transformieren, filtern oder an mehrere Empfänger gleichzeitig weiterleiten kann. Diese Entkopplung schafft Flexibilität und verbessert die Wartbarkeit der Observability-Infrastruktur.

Deployment des Collectors in Kubernetes

Mit dem OpenTelemetry Operator gestaltet sich das Ausrollen eines Collectors unkompliziert. Über ein Kubernetes Custom Resource (CR) vom Typ OpenTelemetryCollector lässt sich die Konfiguration deklarativ verwalten.

Voraussetzungen

  • Ein laufender Kubernetes-Cluster mit installiertem OpenTelemetry Operator.
  • Zugriff via kubectl
  • Installiertes otel-cli

Schritt 1: Eine einfache Collector-Konfiguration erstellen

Eine Datei mit dem Namen otel-collector.yaml erstellen:

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: otel-collector
  namespace: otel
spec:
  mode: deployment
  config: |
    receivers:
      otlp:
        protocols:
          grpc:
          http:
    processors:
      batch:
    exporters:
      logging:
        verbosity: detailed
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [logging]

Diese Konfiguration bewirkt Folgendes:

  • Empfang von Telemetriedaten via OTLP (HTTP und gRPC).

  • Verarbeitung der Daten in Batches.

  • Ausgabe der Traces im Log (nützlich für erste Tests und Debugging).

Schritt 2: Deployment der Collector-Ressource

Die Ressource mit folgendem Befehl anwenden:

kubectl apply -f otel-collector.yaml

Anschliessend prüfen, ob der Collector läuft:

kubectl get pods -n otel

Schritt 3: Testdaten an den Collector senden

Zum Testen eignet sich das Tool otel-cli, um manuell Traces zu senden:

otel-cli exec --endpoint http://otel-collector.otel.svc:4318/v1/traces --service my-test-app --name "test-span"

Die Ausgabe des Collectors lässt sich wie folgt einsehen:

kubectl logs deployment/otel-collector -n otel

Fazit

Der OpenTelemetry Collector bietet in Kubernetes-Umgebungen eine robuste und flexible Möglichkeit, Telemetriedaten zentral zu sammeln und weiterzuleiten. In Kombination mit dem OpenTelemetry Operator wird der Betrieb deutlich vereinfacht. In weiteren Beiträgen folgt ein Blick auf erweiterte Konfigurationen und Integrationen mit konkreten Backends.

Happy tracing!

Beitrag teilen
Weitere Beiträge
Technologie OpenTelemetry Kubernetes
08.05.2025
Der OpenTelemetry Collectors in Kubernetes
Weiterlesen
Technologie Apache Kafka Messaging
15.04.2025
Kafka 4.0: Adieu ZooKeeper, Grüezi KRaft
Weiterlesen