Was ist OpenTelemetry?

Definition, Vorteile und Schlüsselkomponenten von OpenTelemetry

OpenTelemetry (OTel) ist ein Open Source Beobachtbarkeits-Framework zur Erfassung, Verarbeitung und zum Export von Telemetrie-Daten (Logs, Metriken und Traces) in einem einzigen, einheitlichen Format.

Es wurde von der Cloud Native Computing Foundation (CNCF) entwickelt, um zu standardisieren, wie Telemetrie-Daten gesammelt und an Beobachtbarkeit-Backends gesendet werden. OpenTelemetry stellt anbieterneutrale SDKs, APIs und Tools bereit, sodass Ihre Daten an jedes mit OpenTelemetry kompatible Beobachtbarkeit-Backend zur Analyse gesendet werden können.

OpenTelemetry entwickelt sich schnell zum vorherrschenden Telemetriestandard bei der Beobachtbarkeit in Cloud-nativen Anwendungen. 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.

Ein Diagramm, das die Integration von OpenTelemetry mit Elastic für die Beobachtbarkeit von Microservices zeigt


Verständnis von Telemetrie-Daten (Logs, Metriken und Traces)

Telemetriedaten sind die Grundlage der modernen Beobachtbarkeit. Die drei Säulen – Logs, Metriken und Traces – geben Entwicklern, DevOps und IT-Teams tiefe Einblicke in das Systemverhalten, die Leistung und den Zustand.

  • Logs: Die Textaufzeichnung eines einzelnen Ereignisses zu einem bestimmten Zeitpunkt
    • Beispiel: Ein Anmeldeversuch, der mit Zeitstempel, Nutzer-ID und IP-Adresse aufgezeichnet wurde
    • Am besten geeignet für: Problembehandlung, Debugging und Überprüfung der Codeausführung
  • Metriken: Numerische Messungen im Zeitverlauf (Zeitreihendaten), die die Systemleistung widerspiegeln
    • Beispiel: CPU-Auslastung bei 85 % oder HTTP-Anforderungsrate von 1.200/s
    • Am besten geeignet für: Echtzeitüberwachung, Warnungen und Trendanalysen
  • Traces: Der Pfad einer Anfrage oder Transaktion durch mehrere Systemkomponenten, aufgeteilt in Abschnitte
    • Beispiel: Nachverfolgung eines Checkout-Prozesses über Microservices in einer E-Commerce-Platform
    • Am besten geeignet für: Die Identifizierung von Leistungsengpässen und das Verständnis von Anforderungsflüssen in verteilten Architekturen

Eine detaillierte Anleitung zur Einrichtung der Erfassung jedes Telemetrietypen mit OpenTelemetry finden Sie in unserer Dokumentation zu den ersten Schritten mit OpenTelemetry in Elastic.


Eine kurze Geschichte von OpenTelemetry

Vor OpenTelemetry verließ sich die Branche auf OpenTracing und OpenCensus, zwei sich überschneidende Projekte, die ähnliche Zwecke mit unterschiedlichen Implementierungen verfolgten. Um die Fragmentierung zu vermeiden, führte die CNCF sie zu einem einzigen Projekt: OpenTelemetry.

Wichtige Legacy-Komponenten:

  • OpenTracing: Anbieterneutrale APIs zum Senden von Telemetrie-Daten
  • OpenCensus: Sprachspezifische Bibliotheken zur Erfassung von Metriken/Traces

Ergebnis der Zusammenführung: OTel vereint beides in einem einzigen Framework mit:

  • APIs
  • SDKs
  • Instrumentierungsoptionen
  • Ein Collector-Dienst

OpenTelemetry entstand aus der Vereinigung von OpenTracing und OpenCensus, wobei deren Stärken kombiniert wurden, um einen einzigen globalen Standard für Beobachtbarkeit zu schaffen.

Mit OpenTelemetry müssen sich Entwickler nicht mehr zwischen OpenTracing und OpenCensus entscheiden. OpenTelemetry bietet eine einheitliche Reihe von Bibliotheken, APIs, Agenten und Collector-Diensten zum Erfassen und Übertragen von Daten.


Wie OpenTelemetry funktioniert

„OpenTelemetry bietet eine standardisierte Pipeline für das Erfassen von Telemetriedaten und das Senden dieser Daten an ein Beobachtbarkeit-Backend Ihrer Wahl.“ Es ist anbieterunabhängig und erweiterbar.

  • APIs: Sprachspezifische Schnittstellen zur Erzeugung von Telemetrie-Daten
  • SDKs: Implementieren Sie die APIs und übernehmen Sie die Datenverarbeitung, das Batching und den Export
  • Instrumentation:Kann automatisch (keine Codeänderungen erforderlich) oder manuell (benutzerdefinierte Metriken/Ereignisse) erfolgen
  • Exporteure: Senden Sie verarbeitete Daten an ein oder mehrere Ziele mithilfe von Standardprotokollen wie OTLP

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:

KomponenteZweckBeispielverwendung
CollectorEmpfängt, verarbeitet und exportiert Telemetrie-Daten in mehreren Formaten; anbieterunabhängigDas Aggregieren von Logs, Metriken und Traces aus Kubernetes-Clustern, bevor sie an Elastic gesendet werden
Sprach-SDKsImplementiert die OpenTelemetry-API für eine bestimmte ProgrammierspracheVerwendung des Python SDK zur Instrumentierung einer in Python geschriebenen Anwendung
InstrumentierungsbibliothekenAutomatisiert beliebte Frameworks und Bibliotheken für die TelemetriegenerierungAutomatisches Sammeln von HTTP-Anfragemetriken aus Spring Boot
Automatische InstrumentierungFügt Telemetriefunktionen hinzu, ohne den Code zu ändernEinfügen eines Java-Agenten zur Überwachung von JVM-basierten Microservices
ExporterSendet gesammelte Daten an ein oder mehrere Beobachtbarkeit-BackendsExportieren von Traces zu Jaeger und Metriken zu Prometheus

 

Diese Komponenten ermöglichen eine flexible, standardisierte Datenerfassung, unabhängig von der Wahl des Backends.

Unsere Dokumentation zur Einrichtung des OpenTelemetry-Collectors mit Elastic enthält eine vollständige Installationsanleitung.


Vorteile von OpenTelemetry

Die Vorteile von OpenTelemetry umfassen Datenstandardisierung und eine zukunftssichere Flexibilität für mehr Observability und Effizienz und niedrigere Kosten.

  1. Standardisierung
    1. Verwenden Sie eine einzige Erfassungsmethode für mehrere Back-Ends: Elastic, Splunk, Datadog und mehr.
    2. Reduzieren Sie die Komplexität der Pipeline mit einem einzigen erweiterbaren Framework für Logs, Metriken und Traces.
  2. Anbieterneutralität
    1. Wechseln Sie die Backends, ohne die Anwendungen neu zu instrumentieren.
    2. Fügen Sie neue Beobachtbarkeitstools ohne vollständiges Rip-and-Replace hinzu.
    3. Bleiben Sie flexibel, während sich Ihr Technologiestack weiterentwickelt.
  3. Einheitliche Daten
    1. Sorgen Sie mit einem einheitlichen gemeinsamen Schema für eine einfachere Verarbeitung und Analyse.
    2. Führen Sie Analysen, Abfragen, Machine Learning und mehr über Daten aus verschiedenen Quellen aus.

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- und Elastic-Integration

Als langjähriger Befürworter offener Standards setzt sich Elastic dafür ein, die Einführung von OpenTelemetry in der gesamten Branche durch aktive Beiträge und Zusammenarbeit voranzubringen.

Elastic Observability integriert OpenTelemetry Daten nahtlos und ergänzt leistungsstarke Suchfunktionen, Analysen, Machine Learning und Visualisierung in großem Maßstab. 2023 hat Elastic zur Förderung der Vereinheitlichung von Telemetrie-Datenformaten einen Beitrag in Form von ECS zu OpenTelemetry geleistet.

Elastic Distributions of OpenTelemetry (EDOT) bietet SREs und Entwicklern ein stabiles OTel-Ökosystem. Mit dem OTel-First-Ansatz von Elastic, der die nativen Schemakonventionen von OpenTelemetry beibehält, sind keine Schemakonvertierungen erforderlich. EDOT enthält außerdem Korrekturen, die über die OTel-Versionszyklen hinausgehen, und bietet Unterstützung für Unternehmen ohne proprietäre Zusatzmodule.

Entdecken Sie die auf OpenTelemetry basierenden Lösungen von Elastic


Anwendungsfälle für CI/CD-Beobachtbarkeit mit OpenTelemetry und Elastic

Elastic arbeitet mit beliebten CI/CD-Plattformen wie Jenkins, Ansible und Maven zusammen, um Pipelines mit OpenTelemetry zu instrumentieren.

Dies ermöglicht Folgendes:

  • Durchgängige Transparenz in der Pipeline
  • Dashboards zur Live-Überwachung
  • Automatisiertes Alerting und Anomalieerkennung
  • Schnellere Fehlerbehebung bei Build-/Testproblemen

Sie können Anweisungen zur Einrichtung für die Verwendung von OpenTelemetry mit Elastic CI/CD-Monitoring in unserer offiziellen Dokumentation finden.


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 Beobachtbarkeit-Backend wie Jaeger. OpenTelemetry stellt eine Reihe von APIs, SDKs und Tools zum Generieren und Verwalten von Telemetrie-Daten 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 (Softwareentwicklungssets, Software Development Kits) implementieren und unterstützen APIs in Form von Bibliotheken zum Erfassen, Verarbeiten und Exportieren von Daten in ein Beobachtbarkeit-Backend.

Wer hat OpenTelemetry entwickelt und warum?

OpenTelemetry wurde unter der Cloud Native Computing Foundation (CNCF) entwickelt, um die Erfassung und den Export von Telemetrie-Daten zu vereinheitlichen und zu standardisieren. Es vereinte die früheren Projekte OpenTracing und OpenCensus, um die Fragmentierung zu vermeiden.

Was ist das OpenTelemetry-Protokoll (OTLP) und warum ist es wichtig?

OTLP ist das standardmäßige, anbieterneutrale Protokoll von OpenTelemetry zum Senden von Telemetrie-Daten zwischen Komponenten und Backends. Es stellt sicher, dass alle Daten – Logs, Metriken und Traces – in einem konstanten Format übertragen werden, was die Integration zwischen Tools einfacher und zuverlässiger macht.

Was ist der OpenTelemetry Collector?

Der OpenTelemetry Collector ist ein anbieterneutraler Dienst, der Telemetrie-Daten aus mehreren Quellen empfängt, sie verarbeitet (filtert, aggregiert oder transformiert) und an ein oder mehrere Backends exportiert. Er unterstützt verschiedene Protokolle und Formate innerhalb eines einzigen Deployments.

Wie integriert sich OpenTelemetry in Elastic?

„Sie können OTel-native Traces, Logs und Metriken von jedem beliebigen OTel-Tool eines Drittanbieters oder von Ihren eigenen OTel-Collectors mithilfe benutzerdefinierter Prozessoren und Exporteure zur Analyse und Visualisierung in Elastic einbringen.“ Elastic nimmt OTLP-Daten von OpenTelemetry nativ auf und bietet erweiterte Funktionen wie skalierbares Suchen, interaktive Visualisierung, Echtzeitüberwachung und auf Machine Learning basierende Anomalieerkennung. Es sind keine Schema-Konvertierungen erforderlich.


OpenTelemetry-Ressourcen von Elastic