Instrumentierungsansatz auswählen

Auf dieser Seite finden Sie Empfehlungen zum Instrumentieren Ihrer App auf verschiedenenGoogle Cloud -Plattformen wie Google Kubernetes Engine (GKE) und Cloud Run. Wenn Ihre App noch nicht instrumentiert ist, können Sie sich an diesen Empfehlungen orientieren, um Ihre App so zu instrumentieren, dass Telemetriedaten an Google Cloudgesendet werden. Die Empfehlungen auf dieser Seite sind nicht die einzigen Lösungen. Es können auch andere Ansätze funktionieren. Wenn Sie weitere Unterstützung benötigen, wenden Sie sich an denGoogle Cloud -Support.

Es gibt Empfehlungen für folgende Optionen:

Informationen zu Instrumentierungsbeispielen finden Sie in den Dokumenten im Abschnitt Codebeispiele.

GKE

Allgemeine Informationen zu GKE finden Sie in der GKE-Übersicht.

Typ Empfehlung
Messwerte

Wir empfehlen die Verwendung von Google Cloud Managed Service for Prometheus.

Führen Sie für die Instrumentierung einen der folgenden Schritte aus:

Traces

Gehen Sie dazu so vor:

  1. Google-Built OpenTelemetry Collector in Google Kubernetes Engine bereitstellen

    Der Collector empfängt Trace-Daten vom In-Process-OTLP-Exporter des SDK, verarbeitet diese Daten und sendet sie dann über die Telemetry (OTLP) API an Ihr Google Cloud -Projekt.

  2. Verwenden Sie das OpenTelemetry SDK und den OTLP-Exporter für Ihre Sprache.
Logs

Konfigurieren Sie Ihre App so, dass JSON-strukturierte Logs in stdout und stderr ausgegeben werden. Eine Liste der Frameworks finden Sie unter Empfohlene Logging-Frameworks.

GKE erfasst automatisch Logs, die in stdout und stderr geschrieben werden. Weitere Informationen finden Sie unter GKE-Logs.

Compute Engine

Allgemeine Informationen zu Compute Engine finden Sie unter VM-Instanzen.

Typ Empfehlung
Messwerte und Traces

Gehen Sie dazu so vor:

  1. Verwenden Sie den Ops-Agenten, um Messwerte und Traces zu erfassen.

    Ein Beispiel finden Sie unter OTLP-Messwerte und -Traces (OpenTelemetry Protocol) erfassen. In diesem Leitfaden wird beschrieben, wie Sie den Ops-Agent so konfigurieren, dass er Messwert- und Trace-Daten von den In-Process-OTLP-Exportern des SDK empfängt, diese Daten transformiert und dann an Ihr Google Cloud -Projekt sendet. Messwertdaten werden über die Cloud Monitoring API und Trace-Daten über die Cloud Trace API gesendet.

  2. Verwenden Sie das OpenTelemetry SDK und den OTLP-Exporter für Ihre Sprache.

Wenn Sie die Erfassung nur für Messwerte im Prometheus-Format konfigurieren möchten, können Sie alternativ den Ops-Agent-Prometheus-Empfänger verwenden, um Messwerte zu erfassen, die mit Prometheus-Clientbibliotheken oder dem OpenTelemetry SDK instrumentiert wurden.

Logs

Gehen Sie dazu so vor:

  1. Konfigurieren Sie Ihre App so, dass JSON-strukturierte Logs in eine Datei ausgegeben werden. Eine Liste der Frameworks finden Sie unter Empfohlene Logging-Frameworks.
  2. Installieren Sie den Ops-Agent und konfigurieren Sie einen Empfänger. Ein Beispiel finden Sie unter Logging-Empfänger.

Cloud Run

Allgemeine Informationen zu Cloud Run finden Sie unter Was ist Cloud Run?.

Typ Empfehlung
Messwerte und Traces

Gehen Sie dazu so vor:

  1. Verwenden Sie das OpenTelemetry SDK und den OTLP-Exporter für Ihre Sprache.
  2. Stellen Sie eine OpenTelemetry-Sidecar-Datei bereit, um Messwerte und Traces zu erfassen.

    Beispiele finden Sie in den folgenden Dokumenten:

  3. Verwenden Sie für Ihren Cloud Run-Dienst die instanzbasierte Abrechnung. Bei der instanzbasierten Abrechnung wird die CPU für den gesamten Instanzlebenszyklus zugewiesen. Das ist erforderlich, da die OpenTelemetry-Instrumentierung Hintergrundprozesse ausführt. Weitere Informationen finden Sie unter Abrechnungseinstellungen für Cloud Run-Dienste.

Wenn Sie die Erfassung nur für Messwerte im Prometheus-Format konfigurieren möchten, können Sie alternativ den Prometheus-Sidecar für Cloud Run verwenden, um Messwerte zu erfassen, die mit Prometheus-Clientbibliotheken oder dem OpenTelemetry SDK instrumentiert wurden.

Logs

Konfigurieren Sie Ihre App so, dass JSON-strukturierte Logs in stdout und stderr ausgegeben werden. Eine Liste der Frameworks finden Sie unter Empfohlene Logging-Frameworks.

Cloud Run erfasst automatisch Logs, die in stdout und stderr geschrieben wurden. Weitere Informationen finden Sie unter Containerlogs schreiben.

Cloud Run-Funktionen

Allgemeine Informationen zu Cloud Run Functions finden Sie unter Cloud Run Functions – Übersicht.

Typ Empfehlung
Messwerte Das direkte Schreiben von Messwerten wird in Cloud Run-Funktionen nicht unterstützt. Sie können logbasierte Messwerte generieren.
Traces Verwenden Sie das OpenTelemetry SDK und den Cloud Trace-Exporter für Ihre Sprache.
Logs

Konfigurieren Sie Ihre App so, dass JSON-strukturierte Logs in stdout und stderr ausgegeben werden. Eine Liste der Frameworks finden Sie unter Empfohlene Logging-Frameworks.

Cloud Run-Funktionen erfassen automatisch Logs, die in stdout und stderr geschrieben werden. Weitere Informationen finden Sie unter Cloud Run Functions: Übersicht über Monitoring und Logging.

App Engine

Allgemeine Informationen zu App Engine finden Sie in der App Engine-Übersicht.

Typ Empfehlung
Messwerte Verwenden Sie das OpenTelemetry SDK und den Cloud Monitoring-Exporter für Ihre Sprache.
Traces Verwenden Sie das OpenTelemetry SDK und den Cloud Trace-Exporter für Ihre Sprache.
Logs

Konfigurieren Sie Ihre App so, dass JSON-strukturierte Logs in stdout und stderr ausgegeben werden. Eine Liste der Frameworks finden Sie unter Empfohlene Logging-Frameworks.

App Engine erfasst automatisch Logs, die in stdout und stderr geschrieben wurden. Weitere Informationen finden Sie unter Logs schreiben und ansehen.

Empfohlene Logging-Frameworks

Zum Erfassen von Logs empfehlen wir die Verwendung eines Frameworks, das so konfiguriert werden kann, dass serialisierte JSON-Objekte in stdout, stderr oder in eine Datei ausgegeben werden. Der Logging-Agent, unabhängig davon, ob er integriert oder installiert ist, parst die Datei und schreibt strukturierte Logs für Cloud Logging. Für das Schreiben von Logdaten empfehlen wir Folgendes:

Codebeispiele

Wenn Sie eine Anwendung mit OpenTelemetry-Bibliotheken instrumentieren, legen Sie fest, wie Ihre Telemetriedaten an Ihr Google Cloud -Projekt gesendet werden. Es gibt zwei grundlegende Ansätze:

  • Sie instrumentieren Ihren Anwendungscode mit dem OpenTelemetry SDK und verwenden den im SDK enthaltenen In-Process-OTLP-Exporter, um Daten an einen OpenTelemetry-Collector zu senden. Der Collector empfängt Daten vom In-Process-Exporter und sendet sie dann an Ihr Google Cloud -Projekt. Die Änderungen, die Sie an Ihrem Anwendungscode vornehmen, sind anbieterunabhängig. Der Collector enthält die Logik zum Senden der Telemetriedaten an Ihr Google Cloud -Projekt.

  • Sie instrumentieren Ihren Anwendungscode mit dem OpenTelemetry SDK und verwenden einen In-Process-Exporter, der Daten direkt an Ihr Google Cloud -Projekt sendet. Einige Änderungen, die Sie an Ihrer Anwendung vornehmen, sind anbieterspezifisch. Sie müssen jedoch keinen Collector konfigurieren oder bereitstellen.

Wir empfehlen, einen OpenTelemetry-Collector zu verwenden, um Ihre Telemetriedaten zu exportieren, wenn Ihre Umgebung die Verwendung eines Collectors unterstützt. In einigen Umgebungen müssen Sie einen In-Process-Exporter verwenden, der Daten direkt an IhrGoogle Cloud -Projekt sendet.

Beispiele für den Collector-basierten Export

Sprachspezifische Beispiele für die Instrumentierung finden Sie in den folgenden Dokumenten:

Informationen dazu, wie die Collector definiert und bereitgestellt werden, finden Sie unter Beispielübersicht.

Beispiele für den direkten Export mit In-Process-Exportern

Verweise auf OpenTelemetry

In diesem Abschnitt finden Sie Links zum OpenTelemetry SDK und zu den Exporteuren für OTLP, Cloud Trace und Cloud Monitoring.

Allgemeine Referenzen:

Go

Java

JavaScript

Python