Beobachtbarkeit ist die Fähigkeit, den aktuellen Zustand eines Systems anhand der von einem System generierten Daten zu messen und abzuleiten. Diese Daten liegen normalerweise in Form von Protokollen, Metriken und Spuren vor. Als kurzes Beispiel können Sie den Zustand Ihrer Microservices Application beobachten, indem Sie ihre Metriken untersuchen.

Wie funktioniert Beobachtbarkeit?

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

Beobachtbarkeit beginnt mit der Datenerfassung in Echtzeit. Die gesammelten Daten werden dann zur Analyse an einem zentralen Ort gespeichert. Diese Analyse kann mithilfe eines maschinellen Lernalgorithmus, einer Visualisierung oder einer Kombination statistischer Techniken erfolgen.

Das Ergebnis dieser Analyse macht Entwickler auf etwaige Anomalien innerhalb einer Application oder eines Systems aufmerksam. Warnungen können automatisiert und durch festgelegte Schwellenwerte, Schweregrade oder andere Kriterien basierend auf Geschäfts- oder Application ausgelöst werden. Sobald die Anomalie identifiziert und lokalisiert ist, können Entwickler die Daten zum Debuggen und Beheben des Problems verwenden.

Beispiele für Beobachtungsdaten

Wie oben erwähnt, sind die primären Arten von Beobachtungsdaten Protokolle, Metriken und Traces.

  • Protokolle – Ein mit Zeitstempel versehener Textdatensatz mit Metadaten. Diese Aufzeichnungen oder Nachrichten werden normalerweise von einer Application oder einem System generiert. Protokollierung ist eine der gängigsten Methoden zur Implementierung der Beobachtbarkeit in der Softwareentwicklung.
  • Metriken: Eine Messung eines Dienstes, die zur Laufzeit erfasst wird. Diese numerischen Messungen umfassen CPU-Auslastung, Speichernutzung und Fehlerraten. Alle diese Messungen verfolgen die Leistung und Integrität einer Application oder eines Systems.
  • Spuren: Ein Bericht über die Reise der Anfrage oder einer Aktion während ihrer Bewegung durch die Knoten eines verteilten Systems. Traces dokumentieren, wie eine Anfrage verarbeitet wird und wie lange ihre Bearbeitung dauert. Diese Daten können bei der Identifizierung von Engpässen und anderen Latenzproblemen helfen.
Unterscheidet sich Monitoring von Beobachtbarkeit?

Unter Monitoring versteht man die Fähigkeit, den Verlauf von Prozessen innerhalb eines Systems oder einer Application zu beobachten und zu überprüfen. Die Überwachung basiert in hohem Maße auf Messgrößen. Kurz gesagt: Es bietet eine Visualisierung der Umgebung und ermöglicht Ihnen Tests hinsichtlich bekannter Probleme. Die Beobachtbarkeit hingegen liefert neue und tiefere Daten, die Rückschlüsse auf das mögliche Vorliegen eines Problems zulassen. Sie können dann tiefer in die Ursache des Problems eintauchen, um Erkenntnisse für die Zukunft zu gewinnen.

Überwachung und Beobachtbarkeit sind nicht klar voneinander getrennt. Vielmehr handelt es sich dabei um Datenanalyseoptionen und Visualisierungstechniken, die es Entwicklern ermöglichen, schneller zu Erkenntnissen zu gelangen.

Nachdem diese Definitionen festgelegt wurden, werden in der folgenden Tabelle vier subtile Unterschiede zwischen Überwachung und Beobachtbarkeit in Applications genauer untersucht. Diese vier Unterschiede unterteilen sich in Umfang, Granularität, Flexibilität und Analyse.

 

  Überwachung Beobachtbarkeit
Umfang Misst Kennzahlen (z. B. Systemverfügbarkeit, CPU-Auslastung, Fehlerraten) Versteht die Wirkungsmechanismen des Systems anhand der Ergebnisse

Granularität

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

Sammelt und analysiert detaillierte Daten, um tiefere Einblicke und ein besseres Verständnis des Systemverhaltens zu erhalten

Flexibilität

Implementiert vordefinierte Dashboards oder Warnschwellenwerte, die nach der Bereitstellung nur schwer geändert werden können

Verwendet einen flexiblen und anpassbaren Ansatz mit leicht veränderbaren Tools, die sich an veränderte Situationen und Anforderungen anpassen

Analyse

Identifiziert und reagiert auf bestimmte Ereignisse oder Anomalien

Betont die proaktive Analyse und Fehlerbehebung, indem Entwicklern die Werkzeuge zur Verfügung gestellt werden, die sie benötigen, um die Ursache eines Problems zu identifizieren und im Laufe der Zeit Lösungen zu implementieren.

Welche Rolle spielt die Telemetrie bei der Beobachtbarkeit?

Unter Telemetrie im Rahmen der Software-Beobachtung versteht man das Sammeln und Übertragen von Daten über die Leistung und das Verhalten eines Softwaresystems in Echtzeit. Diese Daten (Reaktionszeiten, Fehlerraten, Ressourcenverbrauch usw.) werden verwendet, um den aktuellen Zustand des Systems zu überwachen und zu verstehen und helfen Entwicklern, Möglichkeiten zur Leistungsverbesserung zu erkennen.

In Gesprächen über Telemetrie wird OpenTelemetry (OTel) häufig zum Gesprächsthema, da es einen vereinfachten Ansatz bietet, um Entwicklern die Beobachtbarkeit zu erleichtern. OTel ist eine Reihe von Open-Source-Tools und -Bibliotheken, die die Erfassung von Telemetriedaten (Protokolle, Metriken und Traces) aus Softwaresystemen standardisieren.

Weitere Informationen zu OTel und seinen Auswirkungen auf die Cloud-native-Landschaft finden Sie unter „Wie OpenTelemetry die Art und Weise verändert, wie wir Apps verfolgen und entwickeln“ .

Vorteile der Beobachtbarkeit

Durch Beobachtbarkeit erhalten Entwickler ein besseres Verständnis ihrer Applications und können Folgendes erreichen:

  • Schnellere Fehlerbehebung – Detaillierte, analysierte Daten ermöglichen Entwicklern die schnellere Diagnose und Fehlerbehebung von Systemproblemen.
  • Bessere Leistung – Durch die Überwachung wichtiger Kennzahlen und die Identifizierung von Blockern können Entwickler datengesteuerte Entscheidungen zur Verbesserung der Application treffen.
  • Verbesserte Zuverlässigkeit – Mithilfe von Beobachtungsdaten können Entwickler Systemfehler, die das Benutzererlebnis beeinträchtigen könnten, proaktiv beheben.
  • Bessere Zusammenarbeit – Ein standardisierter Datensatz über einen längeren Zeitraum ermöglicht es Teams, problemlos zusammenzuarbeiten und Probleme auf der Grundlage eines universellen Satzes von Messwerten zu lösen.
Nachteile der Beobachtbarkeit

Die Beobachtbarkeit bringt einige Nachteile mit sich. Zu den häufigsten gehören:

  • Erhöhter Aufwand – Die Implementierung der Observability kann zusätzliche Kosten für Spezialtools zur Verfolgung von Application oder Systemmetriken bedeuten und kann die Bereitstellung zusätzlichen Datenspeichers erforderlich machen.
  • Erhöhte Komplexität – Es sind zusätzliche Instrumente und Überwachungen erforderlich und die Bereitstellung dieser zusätzlichen Tools kann die Komplexität einer Application erhöhen.
  • Informationsüberflutung – Durch die Beobachtbarkeit können große Datenmengen entstehen, deren Verwaltung für die Teams schnell unhandlich wird. Außerdem kann es bei zu vielen Daten schwierig sein, Prioritäten für die Probleme zu setzen, die eine sofortige Lösung erfordern.
Weitere Ressourcen

NGINX ist stolz darauf, zusätzliche kostenlose Bildungsressourcen sowohl zur Observability als auch zu OTel bereitzustellen:

Blogs