Telemetriedaten als gemeinsame Sprache verteilter Systeme
Wer heute Monitoring-Systeme in Unternehmen betrachtet, findet oft ein Flickwerk: Prometheus für Metriken, ein proprietärer Logging-Dienst, ein weiteres Tool für Tracing, ein Dashboard-System, das nur mit dem hauseigenen Backend kommuniziert. Die Konsequenz ist bekannt: Daten müssen mehrfach transformiert werden, Vendor-Lock-in ist allgegenwärtig, und jedes neue Tool bringt wieder ein eigenes SDK mit.
OpenTelemetry (kurz: OTel) ist die Antwort der Cloud Native Computing Foundation (CNCF) auf dieses Problem. Das Projekt definiert ein herstellerneutrales, offenes Framework für die Erzeugung, Sammlung und den Export von Telemetriedaten – Metriken, Logs und Traces – mit einer einzigen, gemeinsamen Spezifikation.
Im Jahr 2026 ist OpenTelemetry kein experimentelles Projekt mehr. Es ist CNCF Graduated, von allen großen Monitoring-Anbietern unterstützt und in Unternehmen weltweit produktiv im Einsatz. Was steckt hinter dem Standard – und warum lohnt es sich, ihn jetzt ernsthaft einzuführen?
Das Kernkonzept: Signals, SDK, Collector
OpenTelemetry besteht aus drei wesentlichen Bausteinen:
Signals: Metriken, Logs, Traces – und bald mehr
OpenTelemetry definiert drei primäre Telemetrie-Signals:
- Traces: Vollständige Abbildung einer Anfrage durch mehrere Services. Jeder Schritt (Span) enthält Zeitstempel, Metadaten und optionale Events.
- Metriken: Numerische Messwerte über Zeit – CPU-Nutzung, Request-Raten, Error-Rates, benutzerdefinierte Geschäftsmetriken.
- Logs: Strukturierte oder unstrukturierte Ereigniseinträge, optional mit Trace-Kontext korreliert.
Ein viertes Signal, Profiling, befindet sich in aktiver Entwicklung und wird kontinuierliches CPU-Profiling als vollständig integriertes OTel-Signal ermöglichen.
SDKs: Instrumentierung in jeder Sprache
OpenTelemetry bietet Bibliotheken für alle gängigen Programmiersprachen: Java, Go, Python, JavaScript/TypeScript, .NET, Rust, PHP, Ruby und weitere. Die SDKs ermöglichen sowohl automatische Instrumentierung (für bekannte Frameworks wie Express, Spring, Django) als auch manuelle Instrumentierung für custom Business-Logik.
Der Collector: Zentrales Verarbeitungsherz
Der OpenTelemetry Collector ist der vielleicht wichtigste Bestandteil für produktive Deployments. Er übernimmt drei Rollen:
- Receiver: Empfängt Telemetriedaten aus verschiedenen Quellen (OTLP, Prometheus, Jaeger, Zipkin, Fluent Bit und mehr)
- Processor: Transformiert, filtert, sampelt und reichert Daten an
- Exporter: Sendet Daten an beliebige Backends (Grafana, Datadog, New Relic, Jaeger, Elasticsearch, S3 und Dutzende weitere)
Warum der Collector der entscheidende Baustein ist
In einfachen Setups senden Anwendungen ihre Telemetriedaten direkt an das Backend. Für Produktionsumgebungen ist der Collector unverzichtbar – aus mehreren Gründen:
Backend-Entkopplung: Anwendungen senden immer nur an den Collector. Welches Backend dahinter liegt, ist für den Anwendungscode irrelevant. Ein Backend-Wechsel erfordert keine Code-Änderungen – nur eine neue Collector-Konfiguration.
Datentransformation: Der Collector kann Daten filtern (nur relevante Traces weitersenden), anreichern (z.B. Kubernetes-Metadaten automatisch hinzufügen), sampeln (Head-based oder Tail-based Sampling) und aggregieren.
Pufferung und Resilienz: Bei kurzfeitigen Backend-Ausfällen puffert der Collector Daten und sendet sie nach Wiederherstellung nach. Direkte Backend-Verbindungen aus Anwendungen heraus haben diese Resilienz nicht.
Security: Der Collector kann als einziger Punkt konfiguriert werden, der Netzwerkverbindungen zu externen Backends aufbaut – Anwendungen brauchen keine Credentials für externe Dienste.
Tail-Based Sampling: Intelligente Datenselektion
Eine der mächtigsten Collector-Funktionen ist Tail-Based Sampling. Im Gegensatz zu Head-Based Sampling (Entscheidung am Anfang einer Anfrage) trifft Tail-Based Sampling die Sampling-Entscheidung erst, wenn eine Transaktion vollständig abgeschlossen ist.
Das ermöglicht Regeln wie: "Behalte immer 100% aller fehlgeschlagenen Anfragen, Anfragen mit mehr als 1 Sekunde Latenz und 5% aller erfolgreichen, schnellen Anfragen." Damit landen die interessantesten Daten im Backend, während der Gesamtdatenvolumen kontrolliert bleibt – ein kritischer Faktor bei skalierten Systemen mit Millionen Anfragen pro Tag.
Kubernetes-Native Deployment
Im Kubernetes-Umfeld empfiehlt sich das Deployment des Collectors in zwei Varianten, die sich ergänzen:
- DaemonSet-Collector: Läuft auf jedem Node, sammelt Host-Metriken, Logs und systemnahe Daten
- Deployment-Collector: Ein zentrales Cluster, das Daten aller DaemonSet-Collectoren aggregiert, verarbeitet und exportiert
Der OpenTelemetry Operator für Kubernetes vereinfacht dieses Setup erheblich: Collector-Konfigurationen werden als Custom Resources definiert, der Operator kümmert sich um Deployment, Updates und Auto-Instrumentierung von Pods über Injection Webhooks.
Praktische Einführungsstrategie
Für Teams, die OpenTelemetry einführen möchten, hat sich folgende Reihenfolge bewährt:
- Collector zuerst: Den Collector zwischen bestehende Anwendungen und bestehende Backends schalten. Noch ohne Änderung am Anwendungscode.
- Auto-Instrumentierung aktivieren: Für die wichtigsten Services automatische Instrumentierung einschalten – oft ohne Code-Änderung möglich.
- Korrelation einrichten: Sicherstellen, dass Traces, Logs und Metriken gemeinsame Attribute (z.B. Service-Name, Trace-ID) tragen, damit Backends sie korrelieren können.
- Sampling-Strategie definieren: Tail-Based Sampling konfigurieren, um Datenmenge und -qualität zu balancieren.
- Manuelle Instrumentierung schrittweise ergänzen: Dort, wo automatische Instrumentierung nicht ausreicht, manuell Spans und Metriken hinzufügen.
Fazit: Investition in Unabhängigkeit
OpenTelemetry ist keine weitere Abhängigkeit – es ist der Weg heraus aus proprietären Abhängigkeiten. Wer einmal seine Anwendungen OTel-instrumentiert hat, kann Backends wechseln, kombinieren oder parallel betreiben, ohne die Instrumentierung anzufassen.
Für Teams, die 2026 eine Observability-Strategie aufbauen oder modernisieren, führt kein vernünftiger Weg an OpenTelemetry vorbei. Der Collector ist dabei das Herzstück, das Flexibilität, Resilienz und Kontrolle über den eigenen Telemetrie-Datenstrom erst möglich macht.
Bildquelle: Pexels (Foto von Pixabay, pexels.com)
Quellen: OpenTelemetry-Dokumentation (opentelemetry.io/docs), CNCF OpenTelemetry-Projekt, OpenTelemetry Collector-Dokumentation (opentelemetry.io/docs/collector)