Jump to section

Was ist Jaeger?

URL kopieren

Jaeger ist eine Open Source-Software, mit der Transaktionen zwischen verteilten Services verfolgt werden können. Jaeger wird zur Überwachung und Fehlerbehebung in komplexen Microservice-Umgebungen eingesetzt.

Mit Distributed Tracing lässt sich eine ganze Kette an Ereignissen in komplexen Interaktionen zwischen Microservices anzeigen und analysieren.

Die moderne cloudnative Softwareentwicklung setzt auf Microservices, also auf unabhängige Services, die jeweils verschiedene Kernfunktionen liefern. Wenn ein Nutzer über eine App eine Anfrage sendet, antworten viele Einzelservices, um das Ergebnis zu liefern.

Durch einen einzelnen Aufruf innerhalb einer App können Dutzende von Services aufgerufen werden, die miteinander interagieren. Wie können Entwickler und IT-Experten ein Problem isolieren, wenn etwas nicht wie geplant funktioniert oder eine Anfrage zu langsam ausgeführt wird? Dazu ist eine Überwachung aller Verbindungen notwendig.

Und genau das ist die Funktion von Distributed Tracing. Diese „verteilte Verfolgung" wird häufig im Rahmen eines Service Mesh ausgeführt, mit dem Microservices verwaltet und beobachtet werden.

Jaeger nutzt Distributed Tracing, um den Weg einer Anfrage durch die verschiedenen Microservices zu verfolgen. Dabei wird der gesamte Prozessfluss visualisiert.

Organisierte Informationen zu Transaktionen können für ein Debugging und optimierte Prozesse sehr nützlich sein. Jaeger umfasst außerdem Tools, die verteilte Transaktionen überwachen, die Performance und Latenzzeiten optimieren und eine RCA (Root Cause Analysis) durchführen.

Als Open Source-Projekt profitiert auch Jaeger von einer Community, in der Hunderte von Programmiererinnen und Programmierern ihre Beiträge leisten. Jaeger basiert auf OpenTracing-APIs und -Instrumentierung, die anbieterneutral sind.

Das Personenbeförderungsunternehmen Uber hat Jaeger im Jahr 2015 als Open Source-Projekt entwickelt. 2017 wurde es dann als Cloud Native Computing Foundation (CNCF) Inkubationsprojekt angenommen, und 2019 erhielt es Graduiertenstatus.

Jaeger stellt Ausführungsanfragen als Traces dar. Mit den Traces wird der Daten-/Ausführungspfad in einem System angezeigt. 

Traces bestehen aus einem oder mehreren Spans. Spans sind die logischen Arbeitseinheiten von Jaeger. Jeder Span enthält den Namen der Operation sowie Startzeit und Dauer. Spans können verschachtelt und sortiert werden.

Jaeger enthält mehrere Komponenten, die zusammenarbeiten, um Spans und Traces zu erfassen, zu speichern und zu visualisieren.

Jaeger Client: enthält sprachspezifische Implementierungen der OpenTracing API für Distributed Tracing. Diese können manuell oder mit einer Vielfalt an Open Source Frameworks verwendet werden.

Jaeger Agent: ein Netzwerk-Daemon, der per User Datagram Protocol gesendete Spans erfasst. Der Agent muss auf dem gleichen Host installiert sein wie die instrumentierte Anwendung. Dies erfolgt üblicherweise per Sidecar in Container-Umgebungen wie Kubernetes.

Jaeger Collector: empfängt Spans und platziert sie in einer Bearbeitungswarteschlange.

Kollektoren erfordern am Backend persistenten Storage, weshalb Jaeger auch einen plugin-fähigen Mechanismus für Span Storage enthält. 

Query: ein Service, mit dem Traces aus dem Storage abgerufen werden.

Jaeger Console: eine Benutzeroberfläche, mit der Sie Ihre Distributed Tracing-Daten anzeigen können.

Jaeger wird standardmäßig im Rahmen des Red Hat® OpenShift® Service Mesh installiert, das eine Implementierung des Open Source Service Mesh Istio umfasst.

Diese Distributed Tracing-Implementierung bietet eine Reihe von Vorteilen. Jaeger lässt sich mit Kiali integrieren, einer Beobachtungskonsole für Istio. Das Jaeger Backend wurde für hohe Skalierbarkeit ohne Single Points of Failure konzipiert. Mit Jaeger lassen sich Daten von unterschiedlichen Komponenten zu einem kompletten End-to-End-Trace verknüpfen. Dazu bietet die Lösung Abwärtskompatibilität mit Zipkin.

Weiterlesen

ARTIKEL

Wie Microservices die IT-Integration im Gesundheitswesen unterstützen

Microservices unterstützen Entwickler im Gesundheitswesen und anderen Branchen bei der Erstellung von Anwendungen aus lose gekoppelten Services, wodurch Entwicklung, Test, Bereitstellung und Upgrade vereinfacht werden.

ARTIKEL

Was sind Microservices?

Microservices sind ein Architekturkonzept der Anwendungsentwicklung, bei dem Teile einer App unabhängig voneinander und gleichzeitig zusammen fungieren.

ARTIKEL

Was ist ein Service Mesh?

Ein Service Mesh ist eine in eine Anwendung integrierte Infrastrukturschicht, mit der Interaktionen zwischen Services dokumentiert werden, um die Kommunikation zu optimieren und Ausfallzeiten zu vermeiden.

Mehr über Microservices erfahren

Produkte

Red Hat OpenShift

Eine unternehmensfähige Kubernetes-Container-Plattform, auf der Operationen für den gesamten Stack automatisiert werden, um Hybrid Clouds, Multi-Clouds und Edge-Deployments noch einfacher verwalten zu können.

Ressourcen

Analystenreport

Red Hat Integration unterstützt Unternehmen bei der Optimierung von Anwendungsleistung und Geschäftsergebnissen

E-Book

Einem Elefanten das Tanzen beibringen – Zusammenfassung

Training

Kostenloser Trainingskurs

Developing Cloud-Native Applications with Microservices Architectures

Illustration - mail

Möchten Sie mehr zu diesen Themen erfahren?

Abonnieren Sie unseren kostenlosen Newsletter, Red Hat Shares.