Was ist Beobachtbarkeit?

Beobachtbarkeit ist die Fähigkeit, den aktuellen Zustand eines Systems auf der Grundlage der von ihm erzeugten Daten zu messen und abzuleiten. Diese Daten liegen in der Regel in Form von Protokollen, Metriken und Ablaufverfolgung vor. Als kurzes Beispiel können Sie den Zustand Ihrer Microservices-Anwendung durch die Untersuchung ihrer Metriken beobachten.

Wie funktioniert Beobachtbarkeit?

Beobachtbarkeit bietet Entwicklern einen ganzheitlichen Überblick über die Funktionsweise eines komplexen Systems. Durch das Erheben, Speichern und Analysieren von Daten erhalten Entwickler die Möglichkeit, Probleme in ihren Systemen zu erkennen und zu beheben.

Die Beobachtbarkeit beginnt mit der Erhebung von Daten in Echtzeit. Die erhobenen Daten werden dann an einem zentralen Ort zur Analyse gespeichert. Diese Analyse kann durch einen Algorithmus für maschinelles Lernen, Visualisierung oder eine Kombination statistischer Verfahren erfolgen.

Das Ergebnis dieser Analyse macht Entwickler 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 auf geschäftlichen oder anwendungsspezifischen Anforderungen beruhen. Sobald die Anomalie identifiziert und lokalisiert ist, können Entwickler die Daten zur Fehlersuche und Problembehandlung nutzen.

Beispiele für Beobachtbarkeitsdaten

Wie bereits erwähnt, handelt es sich bei den wichtigsten Arten von Beobachtbarkeitsdaten um Protokolle, Metriken und Ablaufverfolgung.

  • Protokolle – Ein mit einem Zeitstempel versehener Textdatensatz 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, um Beobachtbarkeit in der Software-Entwicklung zu implementieren.
  • Metriken – Eine Messung über einen Dienst, die zur Laufzeit erfasst wird. Zu diesen numerischen Messungen gehören CPU-Nutzung, Speichernutzung und Fehlerraten. Alle diese Messungen verfolgen die Leistung und den Zustand einer Anwendung oder eines Systems.
  • Ablaufverfolgungen – Ein Bericht über den Weg einer Anforderung oder einer Aktion, während sie die Knoten eines verteilten Systems durchläuft. Ablaufverfolgungen dokumentieren, wie eine Anforderung verarbeitet wird und wie lange es dauert, sie abzuschließen. Diese Daten können helfen, Engpässe und andere Latenzprobleme zu identifizieren.
Unterscheidet sich Überwachung von Beobachtbarkeit?

Überwachung ist die Fähigkeit, den Fortschritt von Prozessen innerhalb eines Systems oder einer Anwendung zu beobachten und zu überprüfen. Die Überwachung stützt sich in hohem Maße auf Metriken. Kurz gesagt, sie bietet eine Visualisierung der Umgebung und ermöglicht es Ihnen, Tests gegen bekannte Probleme durchzuführen. Beobachtbarkeit hingegen liefert neue und ausführlichere Daten, die es Ihnen ermöglichen, auf ein Problem zu schließen. Sie können dann die Ursache des Problems erforschen, um Einblicke für die Zukunft zu gewinnen.

Überwachung und Beobachtbarkeit sind nicht getrennt voneinander zu sehen, sondern vielmehr als Datenanalyseoptionen und Visualisierungstechniken, die es Entwicklern ermöglichen, schneller zu Erkenntnissen zu gelangen.

Nach diesen Definitionen werden in der folgenden Tabelle vier feine Unterschiede zwischen der Überwachung und der Beobachtbarkeit von Software-Anwendungen näher beleuchtet, die sich in Umfang, Granularität, Flexibilität und Analyse unterteilen.

 

  Überwachung Beobachtbarkeit
Umfang Misst Metriken (z. B. Systembetriebszeit, CPU-Nutzung, Fehlerraten) Versteht die Wirkungsmechanismen des Systems anhand seiner Ergebnisse

Granularität

Aggregiert oder prüft stichprobenartig erhobene Daten in regelmäßigen Abständen (basierend auf vordefinierten Metriken)

Erhebt und analysiert präzise Daten, um einen tieferen Einblick und ein besseres Verständnis des Systemverhaltens zu erhalten

Flexibilität

Implementiert vordefinierte Dashboards oder Warnschwellenwerte, die nach der Bereitstellung nur schwer zu ändern sind

Verwendet einen flexiblen und anpassungsfähigen Ansatz mit leicht zu ändernden Tools, die auf sich verändernde Situationen und Anforderungen eingehen

Analyse

Identifiziert und reagiert auf bestimmte Ereignisse oder Anomalien

Der Schwerpunkt liegt auf der proaktiven Analyse und Fehlerbehebung, indem Entwicklern die Werkzeuge an die Hand gegeben werden, die sie benötigen, um die Ursache eines Problems zu ermitteln und Lösungen im Laufe der Zeit zu implementieren

Welche Rolle spielt die Telemetrie bei der Beobachtbarkeit?

Telemetrie in der Software-Beobachtung bezieht sich auf das Erheben und Übertragen von Daten über die Leistung und das Verhalten eines Softwaresystems in Echtzeit. Diese Daten (Antwortzeiten, Fehlerraten, Ressourcenverbrauch usw.) werden verwendet, um den aktuellen Zustand des Systems zu überwachen und zu verstehen und den Entwicklern zu helfen, Möglichkeiten zur Leistungsverbesserung zu erkennen.

In Gesprächen über Telemetrie ist OpenTelemetry (OTel) oft ein Gesprächsthema, weil es einen vereinfachten Ansatz bietet, um Entwicklern die Beobachtbarkeit zu erleichtern. OTel ist eine Reihe von Open-Source-Tools und -Bibliotheken, die die Erhebung von Telemetriedaten (Protokollen, Metriken und Ablaufverfolgung) von Softwaresystemen standardisieren.

Mehr über OTel und seine Auswirkungen auf die Cloud-native Landschaft erfahren Sie in How OpenTelemetry Is Changing the Way We Trace and Design Apps (Wie OpenTelemetry die Art und Weise der Ablaufverfolgung und Entwicklung von Anwendungen verändert).

Vorteile der Beobachtbarkeit

Die Beobachtbarkeit ermöglicht es Entwicklern, ihre Anwendungen besser zu verstehen, was wiederum ein besseres Verständnis ermöglicht:

  • Schnelleres Debugging – Detaillierte, analysierte Daten beschleunigen die Fähigkeit eines Entwicklers, Systemprobleme zu diagnostizieren und zu debuggen.
  • Bessere Leistung – Die Überwachung wichtiger Metriken und die Identifizierung von Blockern hilft Entwicklern, datengestützte Entscheidungen zur Verbesserung der Anwendungsleistung zu treffen.
  • Verbesserte Zuverlässigkeit – Die Beobachtbarkeitsdaten ermöglichen es den Entwicklern, Systemfehler, die die Benutzerfreundlichkeit beeinträchtigen könnten, proaktiv zu beheben.
  • Bessere Zusammenarbeit – Ein Standarddatensatz über einen längeren Zeitraum ermöglicht es den Teams, auf der Grundlage eines universellen Satzes von Metriken zusammenzuarbeiten und Probleme zu lösen.
Nachteile der Beobachtbarkeit

Die Beobachtbarkeit bringt einige Nachteile mit sich; dies sind die häufigsten:

  • Erhöhter Aufwand – Die Implementierung der Beobachtbarkeit kann zusätzliche Kosten für spezialisierte Tools zur Verfolgung von Anwendungs- oder Systemmetriken sowie für die Bereitstellung zusätzlicher Datenspeicher bedeuten.
  • Zusätzliche Komplexität – Es sind zusätzliche Instrumente und Überwachung erforderlich, und die Unterbringung dieser zusätzlichen Tools kann eine Anwendung komplexer machen.
  • Informationsüberflutung – Beobachtbarkeit kann zu großen Datenmengen führen, die für die Teams schnell unhandlich werden, und zu viele Daten können es schwierig machen, zu priorisieren, welche Probleme sofort gelöst werden müssen.
Zusätzliche Ressourcen

NGINX ist stolz darauf, weitere kostenlose Bildungsressourcen zu den Themen Beobachtbarkeit und OTel bereitzustellen:

Blogs