Observability-Framework zum Erfassen von Telemetriedaten OpenTelemetry im Zusammenspiel mit KI

Von Thomas Joos

OpenTelemetry ist ein Open-Source-Framework mit verschiedenen APIs, SDKs und Tools, das Telemetriedaten erfasst und verarbeitet. Diese liefern einen Überblick zur Leistung und Zustand der Cloud-Lösung.

Die Hauptaufgabe von OpenTelemetry besteht vor allem darin, Daten aus verteilten Systemen zu erfassen.
Die Hauptaufgabe von OpenTelemetry besteht vor allem darin, Daten aus verteilten Systemen zu erfassen.
(Bild: OpenTelemetry)

OpenTelemetry, auch als OTel bekannt, ist eine Sammlung von Open-Source-APIs, SDKs und verschiedenen Tools, mit denen sich Telemetrie-Daten aus Cloud-Diensten einlesen lassen. Das Projekt ist Bestandteil der Cloud Native Computing Foundation (CNCF) und hat die Sammlung von Telemetrie-Daten im Fokus. Derzeit befindet sich OpenTelemetry im Inkubationsmodus.

Überwachungstools und andere Lösungen können dadurch die Leistung und den generellen Zustand von Cloud-Diensten überwachen. Daher ist die Lösung auch kompatibel mit Azure Monitor in Microsoft Azure. Aber auch auf der Google Cloud Platform (GCP) und bei Amazon Web Services (AWS) ist OpenTelemetry verfügbar.

Zu den ermittelten Daten gehören unter anderem Protokolle, Metriken und Traces. Für DevOps-Fachleute sind diese Informationen wichtig, da die dadurch gewonnenen Daten auch für den Betrieb eines Dienstes wichtig sind. OpenTelemetry entstand als Kooperation der beiden Projekte darauf einigten, die Codebasen von OpenTracing und OpenCensus. Der Quellcode und Beispiele sind auf der Github-Seite des Projektes zu finden.

Für den Einsatz von OpenTelemetry ist darüber hinaus keine Änderung des Quellcodes der überwachten Lösungen notwendig. Mit kleinen Agenten lassen sich die Telemetrie-Daten genauso erfassen. Java-Programmierer können zum Beispiel Stand-Alone-Tools für mehrere beliebte Bibliotheken wie Spring, JDBC, RxJava, Log4J und andere nutzen.

OpenTelemetry hilft bei der Sammlung von Logs, Metriken und Traces

Bei der Sammlung von Telemetrie-Daten sind vor allem Logs wichtig, da die meisten Anwendungen und Dienste in Textdateien wichtige Informationen sammeln, die für die Analyse nahezu unerlässlich sind. Hinzu kommen noch die Daten von Metriken und Traces. Die Metriken können auf Basis verschiedener Zahlenwerte über fest definierte Zeiträume ebenfalls wichtige Informationen liefern, die zur Analyse eines Clouddienstes oder auch von lokalen Anwendungen herangezogen werden können.

Traces sind wiederum Daten von Abfragen über Datenverarbeitungen über ein ganzes System und mit allen dazu notwendigen Operationen. In Kombination liefern Logs, Metriken und Traces einen umfassenden Überblick zum Zustand einer Anwendung oder eines Dienstes und zeigen Probleme und Optimierungspotential schnell auf.

Was ist die Aufgabe von OpenTelemetry?

Die Hauptaufgabe von OpenTelemetry besteht vor allem darin, aus verteilten Systemen die genannten Daten zu erfassen und für das Debugging und zur Optimierung bereitzustellen. In Microservices-Umgebung mit Kubernetes sammelt die Open-Source-Lösung Daten aus den einzelnen Containern und Diensten.

Vor allem in komplexen Umgebungen, in denen unter Umständen mehrere Dienste, Server und Anwendungen zum Einsatz kommen, schafft OpenTelemetry den notwendigen Überblick. Auch zur Überwachung von lokalen Infrastrukturen mit Active Directory kann OpenTelemetry zum Einsatz kommen. Dazu sind verschiedene Komponenten enthalten, welche die Verarbeitung dieser Daten erst ermöglicht.

Zunächst umfasst OpenTelemetry zahlreiche APIs für verschiedene Sprachen. Dazu gehören zum Beispiel Java und JavaScript, Python, Go oder .NET Auch C++, NodeJS, PHP, Rust oder Swift. OpenTelemetry lässt sich in gängige Bibliotheken und Frameworks wie Spring, ASP.NET, Express und Quarkus integrieren. Dabei ist die Integration mit wenigen Zeilen Code zu erledigen.

OpenTelemetry-Diagramm für die Analyse von Telemetry-Daten.
OpenTelemetry-Diagramm für die Analyse von Telemetry-Daten.
(Bild: OpenTelemetry)

Für eine optimale Analyse müssen die Daten gesammelt exportiert werden können. Im Rahmen eines solchen Exports überträgt OpenTelemetry die Daten an die verwendete Observability-Plattform. Damit die Daten, welche die APIs abfragen, über den Exporter in OpenTelemetry zur Verfügung stehen, sind SDKs notwendig, die ebenfalls wieder für die einzelnen Sprache zum Einsatz kommen.

Diese dienen sozusagen als Verbindung zwischen den APIs und den Exportern für die jeweilige Sprachen. Der OpenTelemetry Collector sorgt wiederum für Empfang, Verarbeitung und den Export der erfassten Telemetriedaten. Der Empfang der Daten findet mit einem Receiver statt. Im Open-Telemetry-Projekt bei GitHub finden sich passend zu unterschiedlichen Systemen verschiedene Receiver.

OpenTelemtry entfaltet mit KI-Lösungen seinen Nutzen

Übergibt OpenTelemetry die Daten an eine KI-Lösung, kann diese automatisiert Daten einlesen, verarbeiten und ohne manuelle Eingriffe Optimierungsmaßnahmen durchführen. Dadurch kann die Umgebung sich selbstständig untersuchen, optimieren und Fehler beheben, bevor diese sich negativ auswirken. Einfach ausgedrückt steigert eine KI-Lösung den Nutzen von OpenTelemetry deutlich, da sie manuelle Eingriffe unnötig macht.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Community Demo für OpenTelemetry

Die Community-Demo erlaubt es, sich einen Überblick über die Möglichkeiten von OpenTelemetry zu verschaffen. Dazu muss lediglich das entsprechende Repo geklont (https://github.com/open-telemetry/opentelemetry-demo-webstore) und mit Docker die Umgebung eingerichtet werden (docker compose up). Das Klonen erfolgt mit dem Befehl:

git clone https://github.com/open-telemetry/opentelemetry-demo-webstore.git

Der Aufbau der Umgebung dauert etwa 20 bis 30 Minuten, danach steht OpenTelemetry zur Verfügung. Der Demo-Webstore ist über die URL http://localhost:8080 verfügbar, die Jäger UI in der Demo lässt sich mit der URL http://localhost:16686 öffnen. Der Betrieb erfordert Docker und Docker Compose. Ebenfalls verfügbar sind Prometheus (http://localhost:9090) und Grafana (http://localhost:3000). Parallel dazu kann über die Seite „Getting Started“ eine eigene Umgebung für OpenTelemetry aufgebaut werden

(ID:48488671)