Instrumentierungsansatz auswählen

Sie können den effektivsten Instrumentierungsansatz für Ihre Anwendung basierend auf Ihrer Google Cloud Compute-Plattform und Telemetrie Anforderungen auswählen. In dieser Anleitung finden Sie Empfehlungen für Google Kubernetes Engine (GKE), Compute Engine und Cloud Run, die Ihnen bei der Entscheidung zwischen dem von Google entwickelten OpenTelemetry Collector, dem Ops-Agent und dem direkten In-Process-OpenTelemetry-Export helfen.

Dieses Dokument enthält allgemeine Empfehlungen sowie Anleitungen für die folgenden Plattformen:

Beispielanwendungen finden Sie unter Beispiele und Implementierungsleitfäden.

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 den Cloud Customer Care.

Allgemeine Empfehlungen

In diesem Abschnitt finden Sie allgemeine Empfehlungen zur Instrumentierung Ihrer Anwendung. Plattformspezifische Anleitungen finden Sie unter Plattformempfehlungen.

  • Logdaten: Wir empfehlen die Verwendung eines Frameworks, das so konfiguriert werden kann, dass JSON-strukturierte Logs für Cloud Logging ausgegeben werden. Für das Schreiben von Logdaten empfehlen wir Folgendes:

  • Messwertdaten: Wir empfehlen die Verwendung von OpenTelemetry oder Prometheus-Clientbibliotheken:

    • OpenTelemetry bietet ein anbieterneutrales Open-Source-Framework und Clientbibliotheken zur Instrumentierung von Anwendungen für Messwerte.
    • Prometheus-Clientbibliotheken (Go, Java, Python usw.) generieren Messwerte, die an einem HTTP-Endpunkt verfügbar gemacht und von einem Agenten extrahiert werden können.
  • Trace-Daten: Wir empfehlen die Verwendung von OpenTelemetry, um verteilte Trace-Daten aus Ihrem Anwendungscode zu generieren.

OpenTelemetry-Erfassungsarchitekturen

Wenn Sie eine Anwendung mit OpenTelemetry-Bibliotheken instrumentieren, können Sie Telemetriedaten über den eigenständigen OpenTelemetry Collector weiterleiten oder direkt aus Ihrem Anwendungsprozess exportieren. Die OpenTelemetry Collector-Konfigurationsdatei steuert, wie der Collector Telemetriedaten empfängt, verarbeitet und exportiert. Im Allgemeinen empfehlen wir, dass Collectors Telemetriedaten mit dem OpenTelemetry Protocol (OTLP) empfangen und exportieren. Die Telemetry (OTLP) API implementiert dieses Protokoll.

Es gibt zwei grundlegende Ansätze zum Senden von Telemetriedaten an Ihr Google Cloud Projekt:

  • Collector-basierter Export (anbieterneutral): Sie instrumentieren Ihren Anwendungscode mit dem OpenTelemetry SDK und verwenden den In-Process-OTLP-Exporter, um Daten an einen OpenTelemetry Collector zu senden, z. B. den von Google entwickelten OpenTelemetry Collector oder einen Ops-Agent-Empfänger. Der Collector empfängt die Telemetriedaten und leitet sie an Ihr Google Cloud Projekt weiter. Ihr Anwendungscode bleibt vollständig anbieterneutral.

  • Direkter Export (anbieterspezifisch): Sie instrumentieren Ihren Anwendungscode mit dem OpenTelemetry SDK und konfigurieren OpenTelemetry so, dass Telemetriedaten mit der Telemetry API an IhrProjekt gesendet werden. Sie müssen keinen Collector bereitstellen, aber Ihr Anwendungscode enthält anbieterspezifische Abhängigkeiten.

Wir empfehlen die Verwendung eines OpenTelemetry Collectors, wenn Ihre Compute-Umgebung einen unterstützt. Verwenden Sie für Umgebungen, in denen die Ausführung eines separaten Collector-Prozesses nicht praktikabel ist, den direkten In-Process-Export.

Plattformempfehlungen

Da Google Cloud Compute-Umgebungen unterschiedliche Lebenszyklen und Sidecar Funktionen haben, variiert das optimale Erfassungsmuster je nach Plattform. In den folgenden Abschnitten finden Sie spezifische Empfehlungen für Ihre Bereitstellungsumgebung.

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. Stellen Sie den von Google entwickelten OpenTelemetry Collector in Google Kubernetes Engine bereit.

    Der Collector empfängt Trace-Daten vom In-Process OTLP-Exporter des SDK, verarbeitet diese Daten und sendet sie dann mit der 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 Anwendung 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 wurden. 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-Agent, um Messwerte und Traces zu erfassen.

    Ein Beispiel finden Sie unter OTLP-Messwerte und -Traces (OpenTelemetry Protocol) erfassen. In dieser Anleitung 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 mit der Cloud Monitoring API und Trace-Daten mit der 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, verwenden Sie den Ops-Agent-Prometheus-Empfänger um Messwerte zu erfassen, die mit Prometheus-Clientbibliotheken oder dem OpenTelemetry SDK instrumentiert wurden.

Logs

Gehen Sie dazu so vor:

  1. Konfigurieren Sie Ihre Anwendung 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 einen OpenTelemetry-Sidecar 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 Lebenszyklus der Instanz zugewiesen. Das ist erforderlich, da die OpenTelemetry Instrumentierung die Hintergrundverarbeitung durchfü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, verwenden Sie den Prometheus Sidecar für Cloud Run, um Messwerte zu erfassen, die mit Prometheus-Clientbibliotheken oder dem OpenTelemetry SDK instrumentiert wurden.

Logs

Konfigurieren Sie Ihre Anwendung 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 Container-Logs schreiben.

Cloud Run-Funktionen

Allgemeine Informationen zu Cloud Run-Funktionen finden Sie in der Übersicht zu Cloud Run-Funktionen.

Typ Empfehlung
Messwerte Das direkte Schreiben von Messwertdaten 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 Anwendung so, dass JSON-strukturierte Logs in stdout und stderr ausgegeben werden. Eine Liste der Frameworks finden Sie unter Empfohlene Logging-Frameworks.

Cloud Run-Funktionen erfasst automatisch Logs, die in stdout und stderr geschrieben wurden. Weitere Informationen finden Sie unter Cloud Run-Funktionen: Übersicht zu 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 Anwendung 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.

Beispiele und Implementierungsleitfäden

OpenTelemetry-Dokumentation

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

Allgemeine Referenzen:

Go

Java

JavaScript

Python