Was ist OpenTelemetry?
Definition: OpenTelemetry
OpenTelemetry (OTel) ist ein Open-Source-Framework für Observability, mit dem Entwicklungsteams Telemetriedaten in einem einzigen, einheitlichen Format generieren, verarbeiten und übertragen können. Dieses Format wurde von der Cloud Native Computing Foundation (CNCF) entwickelt, um standardisierte Protokolle und Tools zum Erfassen und Weiterleiten von Metriken, Logs und Traces an Überwachungsplattformen bereitzustellen.
OpenTelemetry stellt anbieterneutrale SDKs, APIs und Tools bereit, um Ihre Daten zur Analyse an beliebige Observability-Backends übermitteln zu können.
OpenTelemetry ist dabei, sich zum dominierenden Telemetrie-Standard für Observability in cloudnativen Anwendungen zu entwickeln. Die Einführung von OpenTelemetry ist wichtig für alle Unternehmen, die sich auf zukünftige Datenanforderungen vorbereiten möchten, ohne sich an einzelne Anbieter oder die Einschränkungen vorhandener Technologien zu binden.
Was versteht man unter Telemetriedaten?
Der Begriff „Telemetriedaten“ umfasst die Logs, Metriken und Traces aus einem verteilten System. Mit diesen auch als „Grundpfeiler der Observability“ bekannten drei Datenkategorien können Entwickler sowie DevOps- und IT-Teams das Verhalten und die Leistung ihrer Systeme besser verstehen.
Logs: Ein Log ist ein Textdatensatz eines eigenständigen Ereignisses, das zu einem bestimmten Zeitpunkt in einem System aufgetreten ist. Logeinträge werden bei jeder Ausführung von Codeblöcken generiert. Sie enthalten normalerweise einen Zeitstempel, der angibt, wann das Ereignis aufgetreten ist, zusammen mit weiteren Kontextinformationen. Log-Daten existieren in verschiedenen Formaten, wie etwa Nur-Text, strukturiert oder unstrukturiert. Logs sind sehr hilfreich bei der Fehlerbehebung, beim Debuggen und beim Überprüfen von Code.
Metriken: Metriken sind numerische Werte, die über bestimmte Zeiträume hinweg gemessen und oft auch als Zeitreihendaten bezeichnet werden. Sie enthalten Attribute wie etwa einen Zeitstempel sowie den Namen und den Wert eines Ereignisses. In modernen Systemen können wir mit Metriken Probleme überwachen, analysieren und beheben und Warnungen generieren. Metriken verraten uns mehr über unsere Infrastruktur oder Anwendung, wie etwa Systemfehlerraten, CPU-Auslastung oder Anforderungsraten von Diensten.
Traces: Traces bilden den Pfad einer Anfrage in einem verteilten System ab. Traces in OpenTelemetry werden durch ihren Span definiert. Eine Gruppe von Spans bildet einen Trace. Teams können Tracing einsetzen, um den Verlauf und das Verhalten von Anfragen über verschiedene Dienste und Komponenten hinweg von Anfang bis Ende zu verfolgen. Mit verteiltem Tracing können Sie einen vollständigen Ausführungspfad nachverfolgen und problematischen Code identifizieren. Traces liefern Einblicke in die allgemeine Integrität einer Anwendung, bieten jedoch nur begrenzte Einblicke in die zugrunde liegende Infrastruktur. Für einen vollständigen Überblick über Ihre Umgebung brauchen Sie die beiden anderen Grundpfeiler der Observability: Logs und Metriken.
Eine kurze Geschichte von OpenTelemetry
OpenTracing und OpenCensus wurden unabhängig voneinander parallel als überlappende Projekte für verteiltes Tracing entwickelt, um ein standardisiertes Datenformat zu schaffen. OpenTelemetry entstand als Zusammenführung der Codebasen von OpenTracing und OpenCensus und kombiniert deren Stärken zu einem einzigen Projekt, das von der Cloud Native Computing Foundation gehostet wird.
OpenTracing stellt anbieterneutrale APIs zum Übermitteln von Daten an ein Backend bereit. OpenCensus enthielt eine Sammlung von sprachspezifischen Bibliotheken, mit denen Entwickler ihren Code instrumentieren und Daten an Backends übermitteln konnten. Beide Projekte waren Open Source, ihr Quellcode wurde also gemeinschaftlich entwickelt und konnte frei verwendet, angepasst und verbreitet werden.
Mit OpenTelemetry müssen sich Entwickler nicht mehr zwischen OpenTracing und OpenCensus entscheiden. OpenTelemetry bietet eine einheitliche Reihe von APIs, Agenten und Collector-Diensten zum Erfassen und Übermitteln von Daten.
Wie funktioniert OpenTelemetry?
OpenTelemetry stellt ein gemeinsames Framework zum Erfassen von Telemetriedaten und zum Exportieren der Daten in ein Observability-Backend Ihrer Wahl bereit. Die Lösung verwendet eine Reihe von anbieterunabhängigen APIs, SDKs und Tools, mit denen Sie Daten ingestieren, transformieren und übermitteln können.
Die sprachspezifischen OpenTelemetry-APIs koordinieren die Erfassung von Telemetriedaten in Ihrem gesamten System und instrumentieren Ihren Code. Die OpenTelemetry-SDKs implementieren und unterstützen APIs in Form von Bibliotheken zum Erfassen, Verarbeiten und Exportieren von Daten. OpenTelemetry stellt außerdem automatische Instrumentierungsfunktionen für Dienste bereit und unterstützt benutzerdefinierte Instrumentierungsmethoden. Sie können Ihre Telemetriedaten entweder mit anbieterspezifischen Exportfunktionen oder mit dem OpenTelemetry-Protokoll (OTLP) exportieren.
Kernkomponenten von OpenTelemetry
OpenTelemetry enthält die folgenden Kernkomponenten:
Collector
Der OpenTelemetry-Collector ist ein anbieterunabhängiger Proxy, der Telemetriedaten empfängt, verarbeitet und exportiert. Er kann Telemetriedaten in verschiedenen Formaten empfangen und die Telemetriedaten vor dem Exportieren verarbeiten und filtern.
Sprach-SDKs
Mit den OpenTelemetry Sprach-SDKs können Sie die OpenTelemetry-API nutzen, um Telemetriedaten in einer bestimmten Sprache zu generieren und anschließend in ein Backend zu exportieren.
Instrumentierungsbibliotheken
OpenTelemetry unterstützt eine Vielzahl von Komponenten, die relevante Telemetriedaten aus beliebten Bibliotheken und Frameworks für unterstützte Sprachen generieren.
Automatische Instrumentierung
Mit einer sprachspezifischen Implementierung von OpenTelemetry können Sie Ihre Anwendung instrumentieren, ohne Ihren Quellcode ändern zu müssen.
Exporter
Mit Exportern können Sie die Instrumentierung von Ihrer Backend-Konfiguration entkoppeln und Ihr Backend mühelos anpassen, ohne die Instrumentierung ändern zu müssen. Außerdem können Sie Exporter nutzen, um Ihre Telemetrie in mehr als ein Backend hochzuladen.
Vorteile von OpenTelemetry
Die Vorteile von OpenTelemetry umfassen Datenstandardisierung und eine zukunftssichere Flexibilität für mehr Observability und Effizienz und niedrigere Kosten.
Standardisierte Datenerfassung
Mit OpenTelemetry können DevOps-Teams ihre Telemetriedaten einheitlich erfassen und in Backends wie etwa Splunk, New Relic, Dynatrace und Datadog exportieren, ohne ihre Instrumentierung ändern zu müssen. Mit offenen Standards und der standardisierten Datenerfassung verbessert OpenTelemetry die Transparenz und vereinfacht die Observability. Mit dieser mühelos implementierbaren Observability können Sie Ihre Systemintegrität besser verstehen, Leistungsprobleme identifizieren und Problemursachen schneller beheben, bevor Dienste davon betroffen sind. Mit OpenTelemetry müssen Unternehmen keine Zeit mehr dafür aufwenden, interne Lösungen zu entwickeln oder sich mit einzelnen Tools für verschiedene Anwendungen vertraut zu machen. OpenTelemetry reduziert Ablenkungen, Kosten und Konfigurationsänderungen, damit Unternehmen ihre Daten optimal nutzen können, anstatt sich mit den Details der Datenerfassung zu beschäftigen. Die gewonnenen Einblicke können anschließend mit passenden Tools und Formaten für einzelne Teams bereitgestellt werden, um die Zusammenarbeit zu verbessern.
Keinerlei Anbieterbindung
Mit OpenTelemetry können sich Ihre Teams frei für ein Backend entscheiden, ohne sich an einen bestimmten Anbieter zu binden, was für zukunftssichere Investitionen sorgt. Sie können jederzeit Änderungen an Systemen, Backends und Prozessen vornehmen und müssen sich nie mehr an einzelne Plattformen, Lösungen oder Verträge binden – so kann sich das Unternehmen frei entwickeln und sich an die Dynamik der Technologieanforderungen anpassen. Dank dieser Unabhängigkeit und Flexibilität können Sie Geschäftsentscheidungen an Ihrem Endergebnis und Ihren Kunden ausrichten, ohne auf technologische Einschränkungen Rücksicht nehmen zu müssen.
Mit OpenTelemetry erhalten Sie Skalierbarkeit für Ihr Wachstum, plattformübergreifende Kompatibilität und mühelose Integrationen mit Ihren vorhandenen Überwachungs- und Observability-Tools.
OpenTelemetry mit Elastic
OpenTelemetry bietet zwar eine Standardmethode zum Instrumentieren von Anwendungen mit einem einheitlichen Telemetrieformat, stellt jedoch keine Backend- oder Analytics-Komponenten bereit. Elastic Observability integriert OpenTelemetry-Daten nahtlos in eine offene und erweiterbare Elasticsearch-Plattform.
Elastic unterstützt das OpenTelemetry-Protokoll nativ, damit Sie Logs, Metriken und Traces über viele Sprachen hinweg integrieren können. Auf diese Weise können Sie die leistungsstarken Analytics- und Visualisierungsfunktionen von Elastic mühelos und im großen Stil nutzen.
Im April 2023 hat Elastic das Elastic Common Schema (ECS) als Beitrag zu OpenTelemetry bereitgestellt. Das langfristige Ziel dabei war es, die semantischen Konventionen mit ECS zu einem gemeinsamen Schema für Telemetriedaten zu vereinen. Elastic plant, OpenTelemetry für seine Datenarchitektur zu standardisieren, und wird seine Investitionen in das OpenTelemetry-Projekt und seine Mitarbeit daran in Zukunft ausbauen.
Elastic leistet wichtige Beiträge zum OpenTelemetry-Projekt. Elastic Observability bietet Einblicke in CI/CD-Prozesse, mit denen Administratoren Probleme in ihren CI/CD-Plattformen beheben und Entwickler die Geschwindigkeit und Zuverlässigkeit ihrer CI/CD-Pipelines verbessern können. Elastic arbeitet mit den Communitys der beliebtesten CI/CD-Plattformen wie etwa Jenkins, Ansible und Maven zusammen, um Tools mit OpenTelemetry zu instrumentieren und Überwachungs-Dashboards, Warnungsfunktionen und Ursachenanalysen für Pipelines bereitzustellen.
Elastic Observability ist eine Lösung auf Unternehmensniveau, mit der Sie die von der OpenTelemetry-Instrumentierung erfassten Daten direkt an Elastic-Deployments senden können. Sie erhalten vollständige Einblicke in Ihre Hybrid-Cloud-Anwendungen und können sämtliche Daten speichern, analysieren und visualisieren. Anschließend können Sie die leistungsstarken Machine-Learning-Fähigkeiten von Elastic nutzen, um Ihre Analyse- und Wiederherstellungsfunktionen zu beschleunigen.
OpenTelemetry-Ressourcen (teils nur auf Englisch verfügbar)
FAQ zu OpenTelemetry
Ist OpenTelemetry ein Standard?
Ja. OpenTelemetry ist ein Open-Source-Projekt und ein einheitlicher Standard für Logs, Traces und Metriken.
Was versteht man unter Telemetrie?
Beispiele für Telemetriedaten sind Logs, Metriken und Traces, die für Überwachung und Observability in Systemen eingesetzt werden.
Was ist der Unterschied zwischen OpenTelemetry und Jaeger?
OpenTelemetry unterstützt Sie beim Verarbeiten und Exportieren von Daten in eine Vielzahl von Open-Source- und kommerziellen Backends, ist jedoch kein eigenes Observability-Backend wie Jaeger. OpenTelemetry stellt eine Reihe von APIs, SDKs und Tools zum Generieren und Verwalten von Telemetriedaten bereit, und Jaeger ist ein Open-Source-Tool für verteiltes Tracing. IT-Teams nutzen Jaeger, um Anwendungen in Microservice-Architekturen zu überwachen und entsprechende Probleme zu beheben. Jaeger bietet keine Unterstützung für Logs und Metriken.
Was ist der Unterschied zwischen OpenTelemetry-APIs und SDKs?
OpenTelemetry-APIs (Programmierschnittstellen, Application Programming Interfaces) koordinieren die Erfassung von Telemetriedaten in Ihrem gesamten System und instrumentieren Ihren Code. APIs sind sprachspezifisch und müssen daher die Sprache unterstützen, in der Ihr Code geschrieben ist. OpenTelemetry-SDKs (Softwareentwicklungs-Kits, Software Development Kits), implementieren und unterstützen APIs in Form von Bibliotheken zum Erfassen, Verarbeiten und Exportieren von Daten in ein Observability-Backend.