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.
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.
Wie bereits erwähnt, handelt es sich bei den wichtigsten Arten von Beobachtbarkeitsdaten um Protokolle, Metriken und Ablaufverfolgung.
Ü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 |
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).
Die Beobachtbarkeit ermöglicht es Entwicklern, ihre Anwendungen besser zu verstehen, was wiederum ein besseres Verständnis ermöglicht:
Die Beobachtbarkeit bringt einige Nachteile mit sich; dies sind die häufigsten:
NGINX ist stolz darauf, weitere kostenlose Bildungsressourcen zu den Themen Beobachtbarkeit und OTel bereitzustellen: