Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Vernetzung Zuletzt aktualisiert: September 23, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Lassen Sie uns über OpenTelemetry sprechen - eine herstellerneutrale Standardmethode zur Erfassung von Telemetriedaten.

Die bessere Beobachtbarkeit einer Anwendung ist eine große Herausforderung für jeden Entwickler, denn er muss Telemetriedaten der Anwendung erfassen. Das Cambridge Wörterbuch definiert Telemetrie als die Wissenschaft oder den Prozess des Sammelns von Informationen über weit entfernte Objekte und des elektronischen Versendens dieser Informationen an einen anderen Ort.

Ein einziger Klick oder eine Sitzung eines Benutzers auf einer Website erzeugt beispielsweise eine Menge von Anfragen und Rückverfolgungen, die zwischen Netzwerken, Microservices, Datenbanken usw. ablaufen.

OpenTelemetry ist eine Observabilitätsplattform, ein Satz gut ausgearbeiteter Komponenten, die zusammen oder a la carte verwendet werden können. Darüber hinaus haben die Entwickler von Frameworks und Bibliotheken, die wir heute alle verwenden, jetzt eine Standardmethode, um Telemetriedaten in diese Bibliotheken und Frameworks einzubinden, was den Endbenutzern viele sofort einsetzbare Einblicke in das gibt, was diese Frameworks unter der Haube tun.

Um OpenTelemetry zu verstehen, müssen Sie zunächst wissen, was verteiltes Tracing ist.

Was ist verteiltes Tracing?

Da unsere Anwendungen immer komplexer werden und immer mehr Dienste an der Bedienung des Benutzerverkehrs und der Durchführung von Transaktionen beteiligt sind, wird es immer wichtiger zu verstehen, wie Anfragen unsere Dienste durchlaufen und wie jeder Dienst zur Gesamtlatenz beiträgt. Das ist die Aufgabe des verteilten Tracing. Es erfasst die Latenzzeit von Benutzeranfragen und wie lange jeder Microservice im Pfad braucht, um eine Antwort zu liefern.

Wenn eine Benutzeranfrage eingeht, möchten wir einen Trace erstellen, d.h. die Gesamtinformation, die beschreibt, wie unser System auf eine Benutzeranfrage antwortet. Traces setzen sich aus Spans zusammen, wobei jeder Span ein bestimmtes Anfrage- und Antwortpaar bezeichnet, das an der Bearbeitung einer Benutzeranfrage beteiligt ist. Der übergeordnete Bereich beschreibt die vom Endbenutzer beobachtete Latenzzeit. Und der Child-Span wird verwendet, um zu verstehen, wie ein bestimmter Dienst im verteilten System aufgerufen wurde und mit seinen Latenzinformationen geantwortet hat.

Was ist OpenTelemetry?

OpenTelemetry ist ein Open-Source-Projekt, das von der CNCF gehostet wird und eine Standardmethode zur Erzeugung von Telemetriedaten bietet. Es entstand aus dem Zusammenschluss von OpenTracing, einem Standard für die Erzeugung von Trace-Daten, und OpenCensus, einem Standard für die Erzeugung von Metrikdaten.

OpenTelemetry bietet ein einziges Set von APIs, Agenten, Sammler Dienstleistungen und Bibliotheken zur Erfassung von verteilten Traces und Metriken aus Ihrer Anwendung. OpenTelemetry standardisiert die Art und Weise, wie wir Telemetriedaten sammeln und an ein Backend Ihrer Wahl senden. Dies bietet Ihnen einen herstellerunabhängigen Weg zur Instrumentierung und gibt Ihnen die Flexibilität, Ihr Back-End zu ändern, ohne Ihren Code erneut zu instrumentieren.

Sie können auch Ihre Anwendungen mit einem herstellerunabhängigen Agenten instrumentieren und dennoch Ihre Metriken und Traces an einen SaaS-Anbieter wie Datadog senden. Wenn Sie dann den Anbieter wechseln möchten (z.B. von Datadog zu Dynatrace), können Sie dies tun, ohne Ihren Anwendungscode zu ändern.

Das OpenTelemetry-Projekt zielt darauf ab, einen einzigen Satz von API-Bibliotheken und Agenten zur Erfassung von Metriken und verteilten Traces aus Ihren Anwendungen bereitzustellen. Dies gilt für viele Sprachen und Plattformen. Das OpenTelemetry-Projekt umfasst auch einen optionalen Collector-Service und verfügt über ein eigenes Repository für Spezifikationen. Um es klar zu sagen: OpenTelemetry ist nicht Jaeger oder Prometheus, die beobachtbare Backends sind. Aber es hilft beim Exportieren von Daten in Open-Source- und kommerzielle Back-Ends.

Im Folgenden finden Sie die Funktionen, die OpenTelemetry bietet:

  • Standardisierung bei der Erfassung von Telemetriedaten, die Unternehmen befolgen können, was den Wechsel zwischen Anbietern erleichtert
  • Eine anbieterunabhängige, auf einem offenen Standard basierende semantische Konvention für den Prozess der Datenerfassung
  • Collector, der als Agent oder Gateway oder auf viele verschiedene Arten eingesetzt werden kann
  • Unterstützt mehrere Formate zur Kontextübertragung für die Migration
  • Eine End-to-End-Lösung zum Erzeugen, Aussenden, Sammeln, Verarbeiten und Exportieren von Telemetriedaten
  • Möglichkeit, Daten parallel und unter vollständiger Kontrolle an verschiedene Ziele zu senden

OpenTelemetry-Komponenten

Nachfolgend finden Sie die Kernkomponenten von OpenTelemetry:

  • Proto: Diese Komponente wird verwendet, um Kollektoren, Instrumentierungsbibliotheken usw. zu definieren, die sprachunabhängige Schnittstellentypen für OpenTelemetry sind.
  • Kollektor: Collectors werden verwendet, um Telemetriedaten zu empfangen, zu verarbeiten und zu exportieren. Diese Implementierung von Collectors muss herstellerunabhängig sein. Standardmäßig werden alle Telemetriedaten von Instrumentierungsbibliotheken an dieser Stelle exportiert.
  • Spezifikation: Diese Komponente beschreibt die Anforderungen und Erwartungen an die Implementierung in verschiedenen Sprachen, bestehend aus APIs, SDKs und Daten. API generiert die Telemetriedaten, die Verarbeitung und die Exportfunktionen für die Implementierung der von SDKs bereitgestellten APIs. Die Daten haben die semantischen Konventionen, um alle Arten von Anbietern zu unterstützen, ohne dass der Code geändert werden muss.
  • Instrumentierungsbibliotheken: Diese sind als Teil des OpenTelemetry-Projekts in mehreren Sprachen verfügbar. Diese Bibliotheken werden verwendet, um anderen Bibliotheken Beobachtungsmöglichkeiten zu bieten, damit alle Anwendungen durch Aufrufe der OpenTelemetry-API beobachtet werden können.

OpenTelemetry-Architektur

opentelemetrische Architektur - geekflare
Bild von New Relic

Im Großen und Ganzen besteht OpenTelemetry aus drei Hauptbestandteilen:

  • Einem Satz von APIs zur Instrumentierung von Anwendungen, Bibliotheken und Frameworks.
  • Das SDK implementiert APIs.
  • Ein optionaler Collector kann Telemetriedaten aufnehmen, aggregieren und exportieren, wo immer Sie sie benötigen.

Der Zweck der API besteht darin, die Erstellung von Instrumenten für Bibliotheken und den Anwendungscode zu ermöglichen. Die API besteht aus vier Hauptbereichen: Tracing, Messgeräte, ein gemeinsamer Kontext und semantische Konventionen.

  • Die Tracer-API unterstützt die Erstellung, Kommentierung und Vervollständigung von Spans.
  • Die Meter-API besteht aus mehreren metrischen Instrumenten. Beispiele für diese Instrumente sind Beobachter, Wertaufzeichner und Zähler.
  • Sie können den Kontext von Spans verfolgen und ausführen, indem Sie die Kontext-API aktivieren und diesen Kontext sowohl innerhalb als auch außerhalb Ihres Systems weitergeben.
  • Alle Richtlinien und Regeln für die Benennung, wie z.B. die Benennung der Spans, Attribute, Labels und metrischen Instrumente, sind in den semantischen Konventionen enthalten. Diese Konventionen werden implementiert, um die Konsistenz zwischen verschiedenen Sprachimplementierungen und für externe Instrumente zu gewährleisten.

In einem gemeinsam genutzten Kontext liegt die Kontextimplementierung zwischen dem Tracer und dem Messgerät und ermöglicht es, dass alle metrischen Aufzeichnungen, die nicht vom Beobachter stammen, im Kontext eines ausgeführten Spans erfolgen. Eine Funktion, die es SDKs ermöglicht, exemplarische Spans für Metrikwerte zu erfassen. Sie können den Kontext mit Propagatoren anpassen, die die Weitergabe des Spankontextes in das System und aus dem System heraus ermöglichen, was eine echte verteilte Nachverfolgung ermöglicht.

Der Collector ist ein wesentlicher Bestandteil der OpenTelemetry-Architektur. Er ist ein eigenständiger Dienst, der Telemetriedaten aus verschiedenen Quellen empfangen, verarbeiten und exportieren kann, darunter OpenCensus, Zipkin, Jaeger und das OpenTelemetry-Protokoll. Mithilfe von Collectors können Sie Spans und Metriken an mehrere Anbieter und Open-Source-Telemetriesysteme exportieren.

Die OpenTelemetry-Architektur bietet eine komplette Telemetrielösung, die sofort einsatzbereit ist. Sie können auch Anpassungen vornehmen, indem Sie mehrere Erweiterungspunkte je nach Bedarf verwenden.

Wie funktioniert OpenTelemetry?

Installieren Sie den OpenTelemetry-Client innerhalb jedes Dienstes in Ihrem Einsatz. Der Client ist das SDK; das SDK wiederum verfügt über eine API. Ihre Anwendungs-Frameworks und -Bibliotheken verwenden diese Instrumentierungs-API, um die Arbeit zu beschreiben, die sie verrichten. Das SDK exportiert dann die gesammelten Beobachtungen an einen Daten-Pipelining-Dienst namens Collector.

OpenTelemetry hat sein eigenes Datenprotokoll, OTLP, aber der Collector kann OTLP in verschiedene Formate übersetzen, darunter Zipkin, Jaeger und Prometheus. Bemerkenswert ist, dass OpenTelemetry kein eigenes Backend oder Analysetool zur Verfügung stellt, denn das Herzstück von OpenTelemetry ist ein Standardisierungsprojekt. Das Ziel ist es, eine universelle Sprache für die Beschreibung des Betriebs von Computern in einer Cloud-Umgebung zu entwickeln. Es geht nicht darum, zu standardisieren, wie wir diese Daten analysieren. Stattdessen hoffen wir, dass OpenTelemetry dazu beiträgt, die Welt der Beobachtbarkeit voranzutreiben, indem es neuen Analysetools einen schnellen Einstieg ermöglicht, ohne das gesamte Ökosystem der Telemetriesoftware neu aufbauen zu müssen.

Wenn Sie eine große Menge an Daten über das System senden, gibt es eine Menge zu beachten. Glücklicherweise hat OpenTelemetry an all diese Dinge gedacht und hat Lösungen für jede dieser Fragen. In erster Linie ist OpenTelemetry flexibel und kann mehrere Formate für die Kontextübertragung verarbeiten. Das bedeutet, dass es zwar einen Standard gibt, aber dennoch die Möglichkeit besteht, diesen Standard zu wählen. Wenn Sie also z.B. das w3c-Trace-Kontextformat oder b3-Propagation verwenden, handelt es sich um verschiedene Standards innerhalb des Standards, die es Ihren Diensten ermöglichen, die Punkte zu verbinden.

Fazit

OpenTelemetry sammelt eine Vielzahl von Beobachtungen, wobei verteilte Tracing-Metriken und Systemressourcen die wichtigsten sind. Anstatt diese als separate Signale zu behandeln, flicht OpenTelemetry sie zusammen und bietet eine Indizierung und einen Kontext, der es Ihnen ermöglicht, all diese Signale im Backend zu aggregieren und quer zu indizieren.

Zusätzlich zur Datenerfassung bietet OpenTelemetry eine Datenverarbeitungs- und Pipelining-Funktion, mit der Sie Datenformate ändern, Ihre Daten manipulieren und alle Tools nutzen können, die Sie zum Aufbau einer robusten Telemetrie-Pipeline in einem modernen System benötigen.

So, das war alles über OpenTelemetry, probieren Sie dieses Tool doch einfach mal aus.

  • Avi
    Autor
    Avi ist ein Technik-Enthusiast mit Fachkenntnissen in Trendtechnologien wie DevOps, Cloud Computing, Big Data und vielen mehr. Seine Leidenschaft ist es, Spitzentechnologien zu lernen und sein Wissen mit anderen zu teilen, indem er... mehr lesen
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Networking
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder