Warum ist Observability wichtig und wie kann OpenTelemetry unterstützen?

Von Ben Evans*

Der Strategieansatz Observability gewinnt zunehmend an Bedeutung. Das Konzept entstand aus mehreren separaten Entwicklungssträngen, darunter dem Application Performance Monitoring (APM) und der Notwendigkeit, bei orchestrierten Systemen wie Kubernetes für eine größere Transparenz zu sorgen. Prinzipiell zielt Observability darauf ab, hochgradig granulare Einblicke in das Verhalten von Systemen zu gewinnen.

Die Implementierung von Observability ist aus konzeptioneller Sicht relativ einfach. Erstens geht es um die Instrumentierung von Systemen und Anwendungen, um relevante Daten wie Metriken, Traces oder Logs zu sammeln. Zweitens werden diese Daten an ein separates System gesendet, das sie speichern und analysieren kann. Drittens erfolgt die Bereitstellung von Visualisierungen und Insights in das System als Ganzes – einschließlich von Abfragemöglichkeiten für Endbenutzer.

Warum ist Observability wichtig?

Moderne Anwendungen bestehen in der Regel aus einer Vielzahl von Services und Komponenten mit einer komplexen Topologie. Zudem sind sie regelmäßigen Änderungen unterworfen, unterstützt durch Verfahren wie CI/CD. Die wachsende Komplexität der Anwendungen geht einher mit der zunehmenden Nutzung von Technologien, die speziell für die Cloud entwickelt wurden. Dazu gehören etwa containerisierte Umgebungen, dynamisch skalierende Services oder Function-as-a-Service-Bereitstellungen. Diese neue Welt macht Root-Cause-Analysen und Störungsbehebungen potenziell sehr viel schwieriger. Observability ist hier ein wichtiges Element, das bei der Entwicklung robuster und zuverlässiger Systeme für die Cloud unterstützt.

Welche Daten müssen gesammelt werden?

Bei den relevanten Daten für Observability sind drei Säulen zu unterscheiden: Distributed Traces, Metriken und Logs. Traces sind Aufzeichnungen eines einzelnen Serviceaufrufs. In verteilten Architekturen löst ein solcher Aufruf in der Regel nachgelagerte Aufrufe anderer Services aus. Diese Aufrufe werden als Spans bezeichnet, sodass Traces eine Baumstruktur von Spans bilden. Metriken sind Zahlenwerte, die eine bestimmte Aktivität über ein Zeitintervall messen. Eine Metrik enthält typischerweise einen Zeitstempel, einen Namen und einen Wert. Logs bilden die dritte Säule der Observability und sind definiert als unveränderliche Aufzeichnungen von Events. Je nach Implementierung gibt es grundsätzlich drei Arten von Logs: Klartext, strukturiertes und binäres Format.

Observability Tools: Open-Source-Angebote auf dem Vormarsch

Die Marktsegmente APM und Monitoring wurden in der Vergangenheit von proprietären Anbietern dominiert. Als Reaktion darauf wurden verschiedene freie und Open-Source-Softwareprojekte gestartet oder von Technologieunternehmen ausgegliedert. Frühe Beispiele sind Prometheus für Metriken sowie Zipkin und Jaeger für Tracing. Im Bereich des Loggings gewann der „ELK-Stack“ (Elasticsearch, Logstash und Kibana) schnell Marktanteile.

Da Software zunehmend komplexer wird, sind immer mehr Ressourcen erforderlich, um einen validen Satz von Instrumentierungskomponenten bereitzustellen. Bei proprietären Observability-Produkten führt dies zu Doppelarbeit und Ineffizienz. Der Markt ist nun an einem Wendepunkt angelangt und Open-Source-Lösungen gewinnen verstärkt an Bedeutung. Ein wichtiger Meilenstein war dabei die Zusammenlegung der Projekte OpenTracing und OpenCensus zu OpenTelemetry, einem Hauptprojekt innerhalb der Cloud Native Computing Foundation (CNCF). Es gewinnt an Dynamik und immer mehr Unternehmen implementieren OpenTelemetry. Eine kürzlich von der CNCF durchgeführte Untersuchung ergab, dass bereits 49 Prozent der Befragten OpenTelemetry verwenden und diese Zahl dürfte noch erheblich steigen.

OpenTelemetry im Überblick

Doch was ist OpenTelemetry nun genau? Das Projekt bietet eine Reihe von Standards, Formaten, Client-Bibliotheken und zugehörigen Softwarekomponenten. Die Standards sind plattformübergreifend und nicht an einen bestimmten Technologie-Stack gebunden. OpenTelemetry enthält ein Framework, das in Open-Source- und kommerzielle Produkte integriert werden kann und Observability-Daten von Anwendungen erfasst, die in unterschiedlichsten Sprachen geschrieben sind. Aus Sicht von Red Hat ist die Java/JVM-Observability besonders relevant, da sie eine der ausgereiftesten Implementierungen ist. Komponenten in anderen wichtigen Sprachen und Frameworks wie NET, Node.js oder Go besitzen ebenfalls einen hohen Reifegrad.

Insgesamt betrachtet bringt Observability eine entscheidende Erweiterung klassischer Überwachungssysteme. Der Ansatz hilft Unternehmen, die Ursache von Problemen zu identifizieren und mögliche künftige Störungen zu prognostizieren. Eine Schlüsseltechnologie bei der Observability-Umsetzung wird dabei OpenTelemetry sein.

* Ben Evans ist Senior Principal Software Engineer bei Red Hat


Bildquelle / Lizenz Aufmacher:

Photo by John Vowles on Unsplash


Creative Commons Lizenz CC BY-ND 4.0

Sie dürfen:

Teilen — das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten und zwar für beliebige Zwecke, sogar kommerziell.

Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten.


Unter folgenden Bedingungen:

Namensnennung — Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders.

Keine Bearbeitungen — Wenn Sie das Material remixen, verändern oder darauf anderweitig direkt aufbauen, dürfen Sie die bearbeitete Fassung des Materials nicht verbreiten.