Instrumentierung und Beobachtbarkeit

Instrumentierung bezieht sich auf den Code, der Daten zum Laufzeitverhalten Ihrer Anwendung generiert oder erhebt. 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 schicken. Diese Daten, auch unter Telemetrie bekannt, enthält Messwerte, Logs, undTraces.

Messwerte auf Systemebene wie CPU-, Arbeitsspeicher- und Laufwerksnutzung sind hilfreich, um Probleme mit Ihrer Anwendung zu erkennen. Sie geben jedoch nur wenig Aufschluss über Probleme auf Anwendungsebene. Mithilfe von Instrumentierung können Sie mit Ihrer Anwendung die Daten generieren, die Sie zur Diagnose der Grundursache eines Problems benötigen. Die resultierende Telemetrie zeigt Ihnen, was in Ihrer Anwendung passiert. Protokolle enthalten beispielsweise häufig Kontextinformationen zu Ihrem Programm, z. B. eine bestimmte Fehlermeldung oder einen Stacktrace sowie die Position im Quellcode. Verteilte Traces helfen Ihnen auch zu verstehen, wie mehrere Dienste bei der Verarbeitung von Anfragen interagieren. Mithilfe von Messwerten können Sie benachrichtigt werden, wenn Ihre Anwendung nicht richtig funktioniert.

Beim Instrumentieren Ihrer Anwendung werden Telemetry-Daten generiert und an einen Ort gesendet, an dem sie gespeichert und abgefragt werden können. Beispielsweise könnte Ihre Instrumentierung Telemetrie 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, die die Architektur der In-Process-Instrumentierung veranschaulicht

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

Anbieterunabhängige Instrumentierungsframeworks

Auch wenn Sie Telemetry nur an Google Cloudsenden möchten, empfehlen wir Ihnen, ein herstellerunabhängiges Open-Source-Instrumentierungsframework zur Instrumentierung Ihrer Anwendungen zu verwenden. Diese Arten von Frameworks bieten einige wichtige Vorteile:

Keine Anbieterabhängigkeit
Anbieterneutrale Frameworks sind nicht an einen bestimmten Anbieter gebunden und bieten ein eigenes Datenmodell für die generierte Telemetrie. Daher können Sie Daten an mehrere Anbieter senden und in der Regel den Anbieter wechseln, ohne Ihren Code zu ändern.
Standardisierte Verfahren zur Erfassung 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 System von Bibliotheken, die Telemetriesignale erfassen. Diese Bibliotheken sind interoperabel. OpenTelemetry bietet beispielsweise Bibliotheken zum Erfassen von Trace- und Messwertdaten. Sie können entweder eine oder beide Bibliotheken verwenden.

Allgemeine Empfehlungen

Dieser Abschnitt enthält allgemeine Empfehlungen zur Instrumentierung Ihrer Anwendung. Eine Anleitung speziell für Google Cloudfinden Sie unter Ansatz für die Instrumentierung auswählen.

Wir empfehlen, OpenTelemetry oder Prometheus zum Erfassen von Messwerten zu verwenden:

  • OpenTelemetry ist ein Open-Source-Projekt, das ein einheitliches Framework für die Anwendungsinstrumentierung bietet. Außerdem bietet es Instrumentierungsbibliotheken für gängige Bibliotheken. OpenTelemetry bietet einen eigenständigen Agenten, den OpenTelemetry Collector, der Telemetriedaten empfangen, transformieren und exportieren kann. Das Verhalten des OpenTelemetry Collectors wird durch die OpenTelemetry Collector-Konfigurationsdatei bestimmt. Verwenden Sie das OpenTelemetry Protocol (OTLP), um Telemetry an einen Agenten oder direkt an ein Speichersystem zu senden.

  • Prometheus ist ein beliebtes Open-Source-Monitoringsystem. Mit den Prometheus-Clientbibliotheken können Sie Messwerte aus Ihrer Anwendung generieren. Außerdem gibt es ein Drittanbieter-Ökosystem mit Instrumentierungsbibliotheken für gängige Frameworks. Prometheus-Clients stellen ihre Messwerte als HTTP-Endpunkt bereit, der von einem Agenten gescrapt werden kann.

Wir empfehlen die Verwendung von OpenTelemetry zum Erfassen von Traces.

Wir empfehlen, zum Erfassen von Protokollen ein Framework zu verwenden, das so konfiguriert werden kann, dass JSON-strukturierte Protokolle für Cloud Logging ausgegeben werden. Für das Schreiben von Protokolldaten empfehlen wir Folgendes:

Google Cloud solutions

Google Cloud Observability bietet flexible Optionen zum Erfassen von Telemetriedaten:

Nächste Schritte

Weitere Informationen zu Google Cloud Observability finden Sie unter Beobachtbarkeit in Google Cloud.