Observability bezeichnet die Fähigkeit, den aktuellen Zustand eines Systems anhand der von ihm erzeugten Daten zu messen und abzuleiten. Diese Daten liegen üblicherweise in Form von Logs, Metriken, Traces und Ereignissen vor. So können Sie beispielsweise den Zustand Ihrer Microservices-Anwendung anhand ihrer Metriken überwachen.

Wie funktioniert Observability?

Observability bietet Unternehmen einen ganzheitlichen Überblick über die Funktionsweise eines komplexen Systems. Durch die Erfassung, Speicherung und Analyse von Daten können Entwickler Probleme in ihren Anwendungen erkennen und beheben.

Observability beginnt mit der Erfassung von Daten in Echtzeit. Die erfassten Daten werden anschließend zur Analyse an einem zentralen Ort gespeichert. Diese Analyse kann mithilfe eines Machine-Learning-Algorithmus, durch Visualisierung oder durch eine Kombination statistischer Verfahren erfolgen.

Das Ergebnis dieser Analyse macht Entwickler sowie Betriebs-, Sicherheits- und andere relevante Teams auf Anomalien innerhalb einer Anwendung oder eines Systems aufmerksam. Warnmeldungen können automatisiert und durch festgelegte Schwellenwerte, Schweregrade oder andere Kriterien ausgelöst werden, die sich an den Anforderungen des Unternehmens oder der Anwendung orientieren. Sobald die Anomalie erkannt und lokalisiert wurde, können Entwickler die Daten nutzen, um den Fehler zu diagnostizieren und zu beheben.

Beispiele für Observability-Daten

Die wichtigsten Arten von Observability-Daten sind Protokolle, Metriken, Traces und Ereignisse.

  • Protokolle: Ein mit einem Zeitstempel versehener Texteintrag mit Metadaten. Diese Aufzeichnungen oder Meldungen werden in der Regel von einer Anwendung oder einem System erzeugt. Die Protokollierung ist eine der gängigsten Methoden zur Implementierung von Observability in der Softwareentwicklung.
  • Metriken: Eine zur Laufzeit erfasste Messgröße eines Dienstes. Zu diesen numerischen Messwerten gehören CPU-Auslastung, Speichernutzung und Fehlerraten. All diese Messwerte dienen dazu, die Leistung und den Zustand einer Anwendung oder eines Systems zu überwachen.
  • Traces: Eine Aufzeichnung des Wegs einer Anfrage oder einer Aktion durch die Knoten eines verteilten Systems. Traces dokumentieren, wie eine Anfrage verarbeitet wird und wie lange ihre Ausführung dauert. Diese Daten können dabei helfen, Engpässe und andere Latenzprobleme zu identifizieren.
  • Ereignisse: Eine Aufzeichnung wichtiger Änderungen oder Vorkommnisse zu einem bestimmten Zeitpunkt. Ereignisdaten können Zustandsänderungen, Benutzeraktionen, Sicherheitswarnungen oder kritische Bereitstellungen innerhalb einer Umgebung umfassen. Die Aufzeichnung liefert Kontextinformationen, die Teams dabei helfen, die Ursachen von Änderungen nachzuvollziehen.

Unterscheidet sich Monitoring von Observability?

Monitoring bezeichnet die Fähigkeit, den Fortschritt von Prozessen innerhalb eines Systems oder einer Anwendung zu beobachten und zu überprüfen. Dabei stützt es sich in hohem Maße auf Metriken. Kurz gesagt, visualisiert Monitoring die Umgebung und ermöglicht es Ihnen, auf bekannte Probleme zu testen. Observability hingegen liefert neue und tiefergehende Daten, anhand derer Sie auf ein mögliches Problem schließen können. Anschließend können Sie dessen Ursache genauer untersuchen, um Erkenntnisse für die Zukunft zu gewinnen.

Monitoring und Observability sind nicht völlig voneinander getrennt. Vielmehr handelt es sich um Möglichkeiten zur Datenanalyse und Visualisierungstechniken, mit denen Entwickler schneller Erkenntnisse gewinnen können.

Nachdem diese Definitionen geklärt sind, werden in der folgenden Tabelle vier feine Unterschiede zwischen Monitoring und Observability in Softwareanwendungen näher betrachtet. Diese vier Unterschiede betreffen den Umfang, die Granularität, die Flexibilität und die Analyse.

ÜberwachungBeobachtbarkeit

Umfang

Misst Metriken (z. B. Systemverfügbarkeit, CPU-Auslastung, Fehlerraten)

Versteht anhand der Ausgaben, welche Mechanismen im System wirken

Granularität

Aggregiert erfasste Daten oder nimmt in regelmäßigen Abständen Stichproben davon (auf Grundlage vordefinierter Metriken)

Erfasst und analysiert granulare Daten, um tiefere Einblicke und ein besseres Verständnis des Systemverhaltens zu gewinnen

Flexibilität

Je nach Anbieter werden vordefinierte Dashboards oder Alarmschwellenwerte implementiert, die nach der Bereitstellung nur schwer geändert werden können.

Verfolgt einen flexiblen und anpassungsfähigen Ansatz mit einfach anpassbaren Tools, die sich an veränderte Situationen und Anforderungen anpassen lassen

Analyse

Erkennt bestimmte Ereignisse oder Anomalien und reagiert darauf

Unterstützt proaktive Analysen und Fehlerbehebungen, indem Entwicklern die erforderlichen Tools zur Verfügung gestellt werden, um die Ursache eines Problems zu ermitteln und langfristig Lösungen umzusetzen

Welche Rolle spielt Telemetrie bei der Observability?

Telemetrie bezeichnet im Kontext der Software-Observability das Erfassen und Übermitteln von Echtzeitdaten zur Leistung und zum Verhalten eines Softwaresystems. Diese Daten (Antwortzeiten, Fehlerraten, Ressourcenverbrauch usw.) dienen dazu, den aktuellen Zustand des Systems zu überwachen und nachzuvollziehen. Außerdem helfen sie Entwicklern, Möglichkeiten zur Leistungsoptimierung zu erkennen.

In Gesprächen über Telemetrie wird OpenTelemetry (OTel) häufig zum Thema, da es einen vereinfachten Ansatz bietet, der Entwicklern die Observability erleichtert. OTel umfasst eine Reihe von Open-Source-Tools und -Bibliotheken, die die Erfassung von Telemetriedaten (Logs, Metriken und Traces) aus Softwaresystemen standardisieren.

Weitere Informationen zu OTel und seinen Auswirkungen auf die Cloud-native-Landschaft finden Sie in Wie OpenTelemetry die Art und Weise verändert, wie wir Anwendungen nachverfolgen und entwickeln.

Fortschrittliche Observability-Technologien

Zusätzlich zum Einsatz herkömmlicher Lösungen setzen Unternehmen zunehmend auf fortschrittliche Technologien, um die Datenerfassung zu optimieren und eine dynamischere Echtzeit-Observability zu ermöglichen.

eBPF (Extended Berkeley Packet Filter) erfasst Telemetriedaten aus dem Linux-Kernel. Diese direkt in den Linux-Kernel integrierte, isolierte Ausführungsumgebung ermöglicht es Entwicklern, benutzerdefiniertes, ressourcenschonendes Tracing auf Kernel-Ebene durchzuführen, ohne den Kernel-Quellcode zu ändern oder ressourcenintensive Agents auszuführen. Teams können beispielsweise Microservice-Topologien abbilden und den Datenverkehr zwischen Containern verfolgen, um Leistungsprobleme oder Engpässe schnell zu erkennen.

AIOps (KI für den IT-Betrieb)-Plattformen bieten nahezu in Echtzeit Einblicke und Ausführungsmöglichkeiten. Diese Plattformen nutzen KI und maschinelles Lernen, um Anomalien schnell zu erkennen, Muster zu analysieren, Erkenntnisse zu visualisieren und Aktionen zu automatisieren. Sie können automatisch Funktionen ausführen, die die Benutzererfahrung verbessern, den Datenverkehr kostenoptimiert steuern und Sicherheitslücken beheben.

Vorteile der Observability

Observability ermöglicht Entwicklern ein besseres Verständnis ihrer Anwendungen und damit Folgendes:

  • Schnellere Fehlerbehebung: Detaillierte, analysierte Daten helfen Entwicklern, Systemprobleme schneller zu diagnostizieren und zu beheben.
  • Bessere Leistung: Die Überwachung wichtiger Kennzahlen und die Identifizierung von Engpässen helfen Entwicklern, datengestützte Entscheidungen zur Verbesserung der Anwendungsleistung zu treffen.
  • Verbesserte Zuverlässigkeit: Mithilfe von Observability-Daten können Entwickler Systemausfälle, die das Benutzererlebnis beeinträchtigen könnten, proaktiv beheben.
  • Bessere Zusammenarbeit: Ein einheitlicher, über einen längeren Zeitraum erhobener Datensatz ermöglicht es Teams, auf Grundlage allgemeingültiger Kennzahlen problemlos gemeinsam an der Lösung von Problemen zu arbeiten.

Nachteile der Observability

Observability bringt auch einige Nachteile mit sich. Zu den häufigsten gehören:

  • Erhöhter Aufwand: Die Implementierung von Observability kann zusätzliche Kosten für spezialisierte Tools zur Erfassung von Anwendungs- oder Systemmetriken verursachen und zusätzlichen Speicherplatz für Daten erfordern.
  • Zusätzliche Komplexität: Es sind zusätzliche Instrumentierungs- und Überwachungsmaßnahmen erforderlich. Die Einbindung dieser zusätzlichen Tools kann eine Anwendung komplexer machen.
  • Informationsüberflutung: Observability kann große Datenmengen erzeugen, deren Verwaltung für Teams schnell aufwendig wird. Zu viele Daten können zudem die Priorisierung von Problemen erschweren, die sofort behoben werden müssen.

Häufig gestellte Fragen

Was ist der Hauptunterschied zwischen der Observability von Anwendungen und herkömmlichem Monitoring?

Beim herkömmlichen Monitoring werden Prozesse anhand von Metriken überwacht und anschließend Visualisierungen des aktuellen Zustands einer Umgebung erstellt. Im Gegensatz dazu werden bei der Observability detaillierte Daten erfasst und analysiert, um tiefgreifende Erkenntnisse zu gewinnen und potenziell verborgene Probleme proaktiv aufzudecken.

Welche vier Haupttypen von Observability-Daten gibt es?

Observability-Plattformen erfassen und analysieren in der Regel vier Arten von Daten: Protokolle, Metriken, Traces und Ereignisse. Protokolle sind mit Zeitstempeln versehene Aufzeichnungen, die von einem System erzeugt werden. Metriken sind Messwerte zu einer Anwendung oder einem Dienst während der Laufzeit. Traces dokumentieren, wie eine Anfrage verarbeitet wird und wie lange dies dauert. Ereignisse sind Aufzeichnungen wichtiger Änderungen, die zu einem bestimmten Zeitpunkt in einer Umgebung auftreten.

Was ist OpenTelemetry (OTel) und warum ist es wichtig?

OpenTelemetry (OTel) ist eine Sammlung von Open-Source-Tools und -Bibliotheken, die die Erfassung von Telemetriedaten aus Softwaresystemen standardisieren. OTel ermöglicht es Teams, die Abhängigkeit von einem bestimmten Anbieter einer Observability-Plattform zu vermeiden, indem es die Anwendungsinstrumentierung vom Backend-Tool entkoppelt. Darüber hinaus bietet es einheitliche Konventionen und APIs für alle gängigen Programmiersprachen.

Wie implementiert man Observability in Cloud-nativen Kubernetes-Tools und Serverless-Plattformen?

Traditionell war es schwierig, Observability sowohl für Kubernetes-Tools als auch für Serverless-Plattformen zu implementieren, da diese Leistungsdaten auf inkompatible Weise formatierten, benannten und übermittelten. Die Open-Source-Tools und -Bibliotheken von OpenTelemetry (OTel) ermöglichen es Teams, Observability für Kubernetes und Serverless zu implementieren, indem sie ein einziges, universelles Protokoll (das OpenTelemetry Protocol [OTLP]) sowie einheitliche Felddefinitionen bereitstellen.

Wie verbessert eBPF die Observability von Anwendungen?

Der Extended Berkeley Packet Filter (eBPF) ist eine direkt in den Linux-Kernel integrierte, isolierte Ausführungsumgebung. Damit können Entwickler benutzerdefinierte Ablaufverfolgungen durchführen, ohne den Quellcode zu ändern oder ressourcenintensive Agents auszuführen. So lassen sich Leistungsprobleme bei minimalem Ressourcenverbrauch erkennen und zugleich sämtliche Aktivitäten umfassend erfassen.