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.
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.
Wie oben erwähnt, sind die primären Arten von Beobachtungsdaten Protokolle, Metriken und Traces.
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. |
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“ .
Durch Beobachtbarkeit erhalten Entwickler ein besseres Verständnis ihrer Applications und können Folgendes erreichen:
Die Beobachtbarkeit bringt einige Nachteile mit sich. Zu den häufigsten gehören:
NGINX ist stolz darauf, zusätzliche kostenlose Bildungsressourcen sowohl zur Observability als auch zu OTel bereitzustellen: