English English French French Spanish Spanish German German
Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Einführung in OpenTelemetry für Anfänger

Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Lassen Sie uns OpenTelemetry diskutieren – eine herstellerneutrale Standardmethode zum Sammeln von Telemetriedaten.

Eine bessere Beobachtbarkeit einer Anwendung zu bieten, ist eine große Herausforderung für jeden Entwickler, da sie Telemetriedaten der Anwendung erfassen müssen. Das Cambridge Dictionary definiert Telemetrie als die Wissenschaft oder den Prozess des Sammelns von Informationen über weit entfernte Objekte und das Senden der Informationen an einen elektronischen Ort.

Zum Beispiel erzeugt ein einzelner Klick oder eine Sitzung eines Benutzers auf einer Website viele Anfragen und Rückverfolgungen, die zwischen Netzwerken, Microservices, Datenbanken usw.

OpenTelemetry ist eine Observability-Plattform, ein Satz gut faktorisierter Komponenten, die zusammen oder à la carte verwendet werden können. Darüber hinaus haben Entwickler von Frameworks und Bibliotheken, die wir heute alle verwenden, jetzt eine Standardmethode, um Telemetriedaten in diese Bibliotheken und Frameworks zu integrieren, was den Endbenutzern viele sofort einsatzbereite Einblicke in die Funktionsweise dieser Frameworks unter der Haube gibt .

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

What is Distributed Tracing?

Da unsere Anwendungen komplexer werden und mehr Dienste an der Bereitstellung 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. Dies ist, was verteiltes Tracing tut. Es fängt die ein Latenz der Benutzeranforderungen und wie lange jeder Microservice im Pfad benötigt, um eine Antwort zurückzugeben.

Wenn eine Benutzeranfrage eingeht, möchten wir einen Trace erstellen, dh die Gesamtinformation, die beschreibt, wie unser System auf eine Benutzeranfrage reagiert. Ablaufverfolgungen bestehen aus Spans, und jeder Span bezeichnet ein bestimmtes Anforderungs- und Antwortpaar, das an der Verarbeitung einer Benutzeranforderung beteiligt ist. Die übergeordnete Spanne beschreibt die vom Endbenutzer beobachtete Latenz. Und untergeordnete Spanne wird verwendet, um zu verstehen, wie ein bestimmter Dienst im verteilten System aufgerufen und mit seinen Latenzinformationen geantwortet wurde.

What is OpenTelemetry?

OpenTelemetry ist ein Open-Source-Projekt, das von der CNCF gehostet wird und eine Standardmethode zum Generieren von Telemetriedaten bietet. Es entstand durch den Zusammenschluss von OpenTracing, ein Standard zur Generierung von Trace-Daten, und OpenCensus, die ein Standard zum Generieren von Metrikdaten war.

OpenTelemetry bietet einen einzigen Satz von APIs, Agenten, Sammlerdienste, und Bibliotheken, um verteilte Traces und Metriken aus Ihrer Anwendung zu erfassen. OpenTelemetry standardisiert, wie wir Telemetriedaten sammeln und an ein Backend Ihrer Wahl senden. Dies bietet Ihnen einen herstellerneutralen Weg zur Instrumentierung und gibt Ihnen die Flexibilität, Ihr Back-End zu ändern, ohne Ihren Code erneut zu instrumentieren.

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

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

Im Folgenden sind die Funktionen aufgeführt, die OpenTelemetry bietet:

  • Standardisierung bei der Erfassung von Telemetriedaten, denen Unternehmen folgen können, was den Wechsel zwischen Anbietern erleichtert
  • Eine herstellerunabhängige semantische Konvention mit offenem Standard für den Prozess der Datenerfassung
  • Collector, der als Agent oder Gateway oder auf viele verschiedene Arten bereitgestellt werden kann
  • Unterstützt mehrere Kontextverbreitungsformate für die Migration
  • Eine End-to-End-Lösung zum Generieren, Ausgeben, Sammeln, Verarbeiten und Exportieren von Telemetriedaten
  • Möglichkeit zum parallelen Senden von Daten an verschiedene Ziele mit vollständiger Kontrolle darüber

OpenTelemetry Components

Im Folgenden sind die Kernkomponenten von OpenTelemetry aufgeführt:

  • Prototyp: Diese Komponente wird verwendet, um für Kollektoren, Instrumentierungsbibliotheken usw. zu definieren, bei denen es sich um sprachunabhängige Schnittstellentypen für OpenTelemetry handelt.
  • Kollektor: Collectors werden verwendet, um Telemetriedaten zu empfangen, zu verarbeiten und zu exportieren. Diese Implementierung von Kollektoren muss herstellerunabhängig sein. Standardmäßig werden alle Telemetriedaten von Instrumentierungsbibliotheken an diesem Speicherort 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, Verarbeitungs- und Exportfunktionen zum Implementieren der von SDKs bereitgestellten APIs. Data verfügt über die semantischen Konventionen, um alle Arten von Anbietern zu unterstützen, ohne Code zu ändern.
  • Instrumentierungsbibliotheken: Diese sind im Rahmen des OpenTelemetry-Projekts in mehreren Sprachen verfügbar. Diese Bibliotheken werden verwendet, um Beobachtbarkeit für andere Bibliotheken bereitzustellen, damit alle Anwendungen beobachtet werden, indem Aufrufe an die OpenTelemetry-API ausgeführt werden.

OpenTelemetry Architecture

Opentelemetry-Architektur - geekflare
Bild aus New Relic

Auf hoher Ebene besteht OpenTelemetry aus drei Hauptteilen:

  • Eine Reihe von APIs zum Instrumentieren 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 Instrumentierung für Bibliotheken und den Anwendungscode zu ermöglichen. Die API hat vier Hauptabschnitte: Ablaufverfolgung, Zähler, einen gemeinsamen Kontext und semantische Konventionen.

  • Die Tracer-API unterstützt das Erstellen, Kommentieren und Vervollständigen von Spans.
  • Die Zähler-API besteht aus mehreren metrischen Instrumenten. Beispiele für diese Instrumente sind Beobachter, Wertschreiber, Zähler.
  • Sie können den Span-Kontext verfolgen und ausführen, indem Sie die Kontext-API aktivieren und diesen Kontext sowohl innerhalb als auch extern an Ihr System weitergeben.
  • Alle Richtlinien und Regeln für die hauptsächliche Benennung, wie die Benennung der Spannen, 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 sicherzustellen.

In einem gemeinsamen Kontext liegt die Kontextimplementierung zwischen dem Tracer und dem Messgerät und ermöglicht, dass alle Nicht-Beobachter-Metrikaufzeichnungen im Kontext einer Ausführungsspanne erfolgen. Eine Funktion, mit der SDKs beispielhafte Spannen für Metrikwerte erfassen können. Sie können den Kontext mit Propagatoren anpassen, die die Weitergabe des Span-Kontexts in das und aus dem System ermöglichen, wodurch eine echte verteilte Ablaufverfolgung ermöglicht wird.

Der Collector ist ein wesentlicher Bestandteil der OpenTelemetry-Architektur. Es handelt sich um einen eigenständigen 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 out-of-the-box. Sie können auch Anpassungen vornehmen, indem Sie je nach Bedarf mehrere Erweiterungspunkte verwenden.

How OpenTelemetry Works?

Installieren Sie in jedem Dienst in Ihrer Bereitstellung den OpenTelemetry-Client. Der Client ist das SDK; das SDK wiederum verfügt über eine API. Ihre Anwendungsframeworks und Bibliotheken verwenden diese Instrumentierungs-API, um ihre Arbeit zu beschreiben. Das SDK exportiert dann die gesammelten Beobachtungen in einen Datenpipelining-Dienst namens Collector.

OpenTelemetry hat sein eigenes Datenprotokoll, OTLP, aber der Kollektor kann OTLP in verschiedene Formate übersetzen, einschließlich Zipkin, Jaeger und Prometheus. Insbesondere stellt OpenTelemetry kein eigenes Backend oder Analysetool bereit; Dies liegt daran, dass es sich um eine Standardisierungsbemühung im Herzen von OpenTelemetry handelt. Ziel ist es, eine universelle Sprache zu entwickeln, um den Betrieb von Computern in einer Cloud-Umgebung zu beschreiben. Das Ziel besteht nicht darin, die Art und Weise, wie wir diese Daten analysieren, zu standardisieren. Stattdessen hoffen wir, dass OpenTelemetry dazu beiträgt, die Welt der Beobachtbarkeit voranzutreiben, indem es neue Analysetools ermöglicht, schnell zu starten, ohne dieses gesamte Ökosystem der Telemetriesoftware neu aufzubauen.

Wenn Sie viele Daten über das System senden, gibt es viel zu beachten. Glücklicherweise hat OpenTelemetry über alle Dinge nachgedacht und hat Lösungen für jede dieser Fragen. In erster Linie ist OpenTelemetry flexibel und verarbeitet mehrere Kontextweitergabeformate. Dies bedeutet, dass es, obwohl es einen Standard gibt, immer noch die Wahlmöglichkeit innerhalb dieses Standards gibt. Wenn Sie also etwas wie das w3c-Trace-Kontextformat oder die b3-Propagation verwenden, sind dies 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, verflechtet OpenTelemetry sie miteinander und bietet Indizierung und Kontext, mit dem Sie alle diese Signale im Back-End aggregieren und kreuzindexieren können.

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

Also, das war alles über OpenTelemetry, probieren Sie dieses Tool aus.

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Networking
Macht Ihr Geschäft
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder