Definition
OpenTelemetry ist ein herstellerneutraler Standard und ein Open-Source-Tool-Set zur Erfassung, Verarbeitung und Übertragung von Telemetrie-Daten aus Softwareanwendungen. Dazu gehören insbesondere Logs, Metriken (Metrics) und verteilte Traces, die zur Überwachung und Analyse von Systemen verwendet werden. OpenTelemetry bietet eine einheitliche Schnittstelle, um Daten aus unterschiedlichen Quellen und Technologien zu sammeln und zu vereinheitlichen.
Das Projekt zielt darauf ab, Entwicklern und Betreibern eine konsistente und interoperable Lösung bereitzustellen, um die Beobachtbarkeit (Observability) von komplexen verteilten Systemen zu verbessern. OpenTelemetry ist Teil der Cloud Native Computing Foundation (CNCF) und wird von einer großen Community aus Unternehmen und Einzelpersonen entwickelt.
Was bedeutet das für Ihr Unternehmen?
OpenTelemetry schützt Sie vor einer stillen Form der Anbieterbindung: Ist eine Anwendung damit ausgestattet, lässt sich das Überwachungswerkzeug später wechseln, ohne den Code erneut anzupassen. Das ist relevant, wenn Kosten eines kommerziellen Monitoring-Dienstes mit der Datenmenge steigen oder Daten in die EU umziehen sollen. Bei kleinen Anwendungen mit einem Server ist der Aufwand oft größer als der Nutzen, bei mehreren zusammenspielenden Diensten zahlt er sich eher aus.
Geschichte und Standardisierung
OpenTelemetry entstand 2019 durch die Zusammenführung der beiden Vorgängerprojekte OpenTracing und OpenCensus. OpenTracing wurde 2016 von Unternehmen wie LightStep und Uber initiiert, um verteiltes Tracing zu standardisieren. OpenCensus wurde von Google entwickelt und fokussierte sich auf das Sammeln von Telemetrie-Daten mit einer eigenen API und Implementierung.
Die Zusammenführung zu OpenTelemetry sollte die Stärken beider Projekte vereinen und eine umfassendere Lösung bieten. Seit der Gründung wird OpenTelemetry aktiv weiterentwickelt und von der CNCF als eines der wichtigsten Observability-Projekte gefördert. Es unterstützt zahlreiche Programmiersprachen und Plattformen und wird als De-facto-Standard für Telemetrie-Daten in Cloud-nativen Umgebungen angesehen.
Funktionsweise und Architektur
OpenTelemetry besteht aus mehreren Komponenten, darunter APIs, SDKs, Collector und Exporter. Die APIs ermöglichen es Entwicklern, Telemetrie-Daten in Anwendungen zu instrumentieren, also Messpunkte für Logs, Metriken und Traces einzubauen. Die SDKs implementieren die Datenerfassung und -verarbeitung innerhalb der Anwendung.
Der OpenTelemetry Collector ist eine eigenständige Komponente, die Telemetrie-Daten aus verschiedenen Quellen sammelt, verarbeitet und an Backend-Systeme weiterleitet. Er kann lokal oder als Dienst betrieben werden und unterstützt verschiedene Protokolle und Exportziele. Exporter sind Module, die die Daten an Monitoring- und Analysewerkzeuge wie Prometheus, Jaeger oder Zipkin senden.
Einsatzgebiete
OpenTelemetry wird vor allem in Cloud-nativen Anwendungen und Microservice-Architekturen eingesetzt, um die Performance und Zuverlässigkeit von Systemen zu überwachen. Die gesammelten Telemetrie-Daten helfen dabei, Fehlerquellen zu identifizieren, Engpässe zu analysieren und das Verhalten von verteilten Anwendungen nachzuvollziehen.
Darüber hinaus findet OpenTelemetry Verwendung in DevOps- und SRE-Teams (Site Reliability Engineering), die durch automatisierte Überwachung und Alerting die Stabilität von IT-Systemen sicherstellen. Die herstellerunabhängige Natur erleichtert die Integration in bestehende Monitoring-Landschaften verschiedener Anbieter.
Abgrenzung zu verwandten Technologien
OpenTelemetry grenzt sich von seinen Vorgängern OpenTracing und OpenCensus ab, indem es deren Funktionen kombiniert und erweitert. Während OpenTracing sich ausschließlich auf verteiltes Tracing konzentrierte, deckt OpenTelemetry zusätzlich Metriken und Logs ab. OpenCensus bot ähnliche Funktionen, war jedoch weniger weit verbreitet und hatte eine eigene API.
Im Vergleich zu proprietären Monitoring-Lösungen, etwa New Relic oder Datadog, bietet OpenTelemetry eine offene und standardisierte Schnittstelle zur Datenerfassung. Es ersetzt diese Produkte nicht, sondern dient als Grundlage, um Telemetrie-Daten unabhängig vom Anbieter zu sammeln und an verschiedene Backends zu senden. Alternativ existieren weitere Standards wie W3C Trace Context, die OpenTelemetry für die Interoperabilität nutzt.