Beobachtbarkeit für Anwendungsentwickler

Wenn Sie Anwendungen schreiben, können Sie Ihren Code instrumentieren, um Telemetriedaten zu generieren und detaillierte Beobachtbarkeit in das interne Laufzeitverhalten Ihrer Anwendung zu erhalten. Auf dieser Seite werden Konzepte zur In-Process-Instrumentierung vorgestellt, die Vorteile anbieterneutraler Frameworks wie OpenTelemetry erläutert und auf sprachspezifische Leitfäden und Codebeispiele für Google Cloud Observability verwiesen.

Was sind Instrumentierung und Beobachtbarkeit?

Instrumentierung bezieht sich auf den spezifischen Code, der Daten zum Laufzeitverhalten Ihrer Anwendung generiert oder erfasst. Innerhalb Ihrer Anwendung kann eine Instrumentierung, wie sie beispielsweise von OpenTelemetry bereitgestellt wird, domainspezifische Informationen zur Sprachlaufzeit, zum Framework oder zur Anwendungslogik erfassen und diese Daten dann an ein Google Cloud Projekt oder an ein anderes Ziel senden. Diese Daten, auch Telemetrie genannt, umfassen Logs, Messwerte und Traces.

Messwerte auf Systemebene wie CPU-Auslastung, Speicherauslastung und Festplattennutzung sind zwar nützlich, um Probleme mit Ihrer Anwendung zu erkennen, bieten aber nur wenig Einblick in Probleme auf Anwendungsebene. Die Instrumentierung kann dazu beitragen, dass Ihre Anwendung die Daten generiert, die Sie zur Diagnose der Ursache eines Problems benötigen, da die resultierenden Telemetriedaten zeigen, was in Ihrer Anwendung passiert. Logs enthalten beispielsweise oft Kontextinformationen zu Ihrem Programm, z. B. eine bestimmte Fehlermeldung oder einen Stacktrace und die Position im Quellcode. Ebenso helfen verteilte Traces Ihnen zu verstehen, wie mehrere Dienste bei der Verarbeitung von Anfragen interagieren. Mit Messwerten können Sie feststellen, wann sich Ihre Anwendung nicht korrekt verhält.

Bei der Instrumentierung Ihrer Anwendung werden Telemetriedaten generiert und an ein System gesendet, in dem Daten gespeichert und abgefragt werden können. Beispielsweise könnte Ihre Instrumentierung Telemetriedaten an ein Google Cloud Projekt senden. Mit Diensten in Google Cloud Observability können Sie Telemetriedaten erfassen, analysieren und korrelieren. Außerdem bieten sie integrierte Standardeinstellungen, damit Ihr Einstieg schneller gelingt, beispielsweise standardmäßige Dashboards und Benachrichtigungsrichtlinien. Weitere Informationen zu Google Cloud Observability finden Sie unter Beobachtbarkeit in Google Cloud.

Die folgende Abbildung zeigt, wie eine Anwendung Instrumentierung verwendet, um Telemetriedaten zu generieren und an ein Speichersystem zu senden:

Abbildung zur Architektur der In-Process-Instrumentierung.

Wie in der vorherigen Abbildung dargestellt, ist der Instrumentierungscode im Prozess Ihrer Anwendung enthalten und interagiert mit der Anwendung, um Telemetriedaten zu generieren. Das Instrumentierungs-Framework exportiert dann Ihre Telemetriedaten in ein konfiguriertes Speichersystem. In der Abbildung ist das Speichersystem Ihr Google Cloud Projekt.

Warum Sie anbieterneutrale Instrumentierungs-Frameworks verwenden sollten

Auch wenn Sie Telemetriedaten nur an Google Cloudsenden möchten, empfehlen wir Ihnen, ein anbieterneutrales Open-Source-Instrumentierungs-Framework zu verwenden, um Ihre Anwendungen zu instrumentieren. Diese Arten von Frameworks haben einige wichtige Vorteile:

Keine Anbieterabhängigkeit
Anbieterneutrale Frameworks sind nicht an einen bestimmten Anbieter gebunden und bieten ein eigenes Datenmodell für die generierten Telemetriedaten. Daher können Sie Daten an mehrere Anbieter senden und in der Regel den Anbieter ändern, ohne Ihren Code zu ändern.
Standardisierte Verfahren zum Erfassen von Telemetriedaten
Gut konzipierte Frameworks wie OpenTelemetry bieten einen standardisierten Ansatz zum Erfassen von Telemetriedaten aus Anwendungen. Sie können dasselbe Framework für Anwendungen verwenden, die in unterstützten Sprachen geschrieben wurden. Da das Framework standardisiert ist, können Sie die Telemetriedaten aller Ihrer Dienste erfassen und vergleichen.
Interoperable Bibliotheken
Instrumentierungs-Frameworks umfassen ein umfangreiches Ökosystem von Bibliotheken, die Telemetriesignale erfassen. Diese Bibliotheken sind interoperabel. OpenTelemetry bietet beispielsweise Bibliotheken zum Erfassen von Trace-Daten und zum Erfassen von Messwertdaten. Sie können eine oder beide Bibliotheken verwenden.

Instrumentierungsstrategie festlegen

Beispiele und Implementierungsleitfäden