Instrumentierungsansatz auswählen

Sie können den effektivsten Instrumentierungsansatz für Ihre Anwendung basierend auf Ihrer Google Cloud -Computing-Plattform und Ihren Telemetrieanforderungen auswählen. Dieser Leitfaden enthält 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 prozessinternen 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. Weitere Informationen erhalten Sie von Cloud Customer Care.

Allgemeine Empfehlungen

Dieser Abschnitt enthält allgemeine Empfehlungen zur Instrumentierung Ihrer Anwendung. Plattformspezifische Anleitungen finden Sie unter Plattformempfehlungen.

  • Logdaten: Wir empfehlen, ein Framework zu verwenden, das so konfiguriert werden kann, dass JSON-strukturierte Logs für Cloud Logging ausgegeben werden. Zum 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, um Anwendungen für Messwerte zu instrumentieren.
    • Prometheus-Clientbibliotheken (Go, Java, Python usw.) generieren Messwerte, die an einem HTTP-Endpunkt bereitgestellt und von einem Agenten extrahiert werden können.
  • Trace-Daten: Wir empfehlen, OpenTelemetry zu verwenden, um verteilte Trace-Daten aus Ihrem Anwendungscode zu generieren.

OpenTelemetry-Sammlungsarchitekturen

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 über das OpenTelemetry Protocol (OTLP) empfangen und exportieren. Die Telemetry (OTLP) API implementiert dieses Protokoll.

Es gibt zwei grundlegende Ansätze, um Telemetriedaten an Ihr Google Cloud -Projekt zu senden:

  • Collector-basierter Export (anbieterneutral): Sie instrumentieren Ihren Anwendungscode mit dem OpenTelemetry SDK und verwenden den prozessinternen 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 mithilfe der Telemetry API an Ihr Projekt gesendet werden. Sie müssen keinen Collector bereitstellen, aber Ihr Anwendungscode enthält anbieterspezifische Abhängigkeiten.

Wir empfehlen, einen OpenTelemetry-Collector zu verwenden, 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 prozessinternen Export.

Plattformempfehlungen

Da Google Cloud -Computing-Umgebungen unterschiedliche Lebenszyklus- 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. Von Google entwickelten OpenTelemetry Collector in der Google Kubernetes Engine bereitstellen.

    Der Collector empfängt Trace-Daten vom prozessinternen OTLP-Exporter des SDK, verarbeitet diese Daten und sendet die verarbeiteten Daten 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 Anwendung so, dass JSON-strukturierte Logs in stdout und stderr ausgegeben werden. Eine Liste der Frameworks finden Sie unter Empfohlene Logging-Frameworks.

Die 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 dieser Anleitung wird beschrieben, wie Sie den Ops-Agent so konfigurieren, dass er Messwert- und Trace-Daten von den prozessinternen 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 auch 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 Anwendung so, dass JSON-strukturierte Logs in eine Datei ausgegeben werden. Eine Liste der Frameworks finden Sie unter Empfohlene Logging-Frameworks.
  2. Ops-Agent installieren und Empfänger konfigurieren 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 Lebenszyklus der Instanz zugewiesen. Das ist erforderlich, da die OpenTelemetry-Instrumentierung 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, 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 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 werden. 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 Messwertdaten wird in Cloud Run Functions nicht unterstützt. Sie können logbasierte Messwerte generieren.
Traces 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.

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

App Engine

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

Typ Empfehlung
Messwerte Verwenden Sie das OpenTelemetry SDK und den OTLP-Exporter für Ihre Sprache.
Traces 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.

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 OTLP-Exportern in verschiedenen Sprachen.

Allgemeine Referenzen:

Go

Java

JavaScript

Python