Der von Google entwickelte OpenTelemetry Collector

In diesen Dokumenten wird der von Google entwickelte OpenTelemetry Collector beschrieben. Außerdem wird erläutert, wie Sie den Collector bereitstellen, um OTLP-Traces (OpenTelemetry Protocol), Messwerte und Protokolle aus instrumentierten Anwendungen zu erfassen und diese Daten in Google Cloud Observability und andere Backends zu exportieren.

Der von Google entwickelte OpenTelemetry Collector ist ein Open-Source-Produktions-Build des Upstream-OpenTelemetry Collector, der mit Upstream-OpenTelemetry Collector-Komponenten erstellt wurde. OpenTelemetry ist Teil der Cloud Native Computing Foundation und bietet Open-Source-APIs, ‑Bibliotheken und ‑SDKs zum Erfassen verteilter Traces, Messwerte und Protokolle für die Anwendungsüberwachung.

Mit dem von Google entwickelten OpenTelemetry Collector können Sie korrelierte OTLP-Traces, ‑Messwerte und ‑Logs von Anwendungen, die mit OpenTelemetry SDKs instrumentiert wurden, an Google Cloud Observability und andere Backends senden. Der Collector erfasst auch Metadaten für Google Cloud -Ressourcen, sodass Sie Anwendungsleistungsdaten mit Infrastruktur-Telemetriedaten in Beziehung setzen können. Wenn Sie den von Google entwickelten Collector mit Google Cloud Observability verwenden, erhalten Sie Informationen, mit denen Sie die Leistung Ihrer Anwendungen und Infrastruktur verbessern können. Weitere Informationen zum Collector finden Sie unter Beschreibung des von Google entwickelten OpenTelemetry Collector.

Von Google erstellten OpenTelemetry Collector verwenden

Sie können den von Google entwickelten Collector verwenden, um Telemetriedaten aus Ihren Anwendungen zu erfassen, die auf Kubernetes (einschließlich Google Kubernetes Engine), Container-Optimized OS oder eigenständigen Containern ausgeführt werden. In den Dokumenten in diesem Abschnitt wird beschrieben, wie Sie den von Google entwickelten Collector in den folgenden Umgebungen konfigurieren und bereitstellen:

Wenn Sie noch keine Anwendung haben, die den Collector verwenden kann, können Sie die OpenTelemetry-Demo mit dem von Google entwickelten Collector bereitstellen. Weitere Informationen finden Sie unter OpenTelemetry-Demo ausprobieren.

Informationen zur Verwendung der OpenTelemetry-Instrumentierung zum Generieren von Traces, Messwerten und Protokollen aus Ihren Anwendungen finden Sie in den folgenden Dokumenten:

Beschreibung des von Google entwickelten OpenTelemetry-Collectors

Der von Google entwickelte OpenTelemetry Collector wird mithilfe von Upstream-OpenTelemetry-Komponenten und -Tools erstellt. Er wird vollständig über die Build-Test-Release-Infrastruktur von Google (Artifact Registry) erstellt und abgerufen. Der von Google erstellte Collector ist mit einem OpenTelemetry Collector-Build aus dem Upstream-Repository kompatibel. Es wird auch als Docker-Image gehostet, um es flexibel in jedem containerbasierten System bereitzustellen, einschließlich Kubernetes und GKE.

Der von Google entwickelte Collector bietet ein von Google zusammengestelltes Paket mit den Komponenten, die die meisten Nutzer für eine umfassende Observability auf Google Cloudbenötigen. Sie müssen keine Komponenten auswählen und keinen eigenen Collector manuell erstellen. Mit dem von Google entwickelten Collector haben Sie folgende Möglichkeiten:

  • Metadaten für Google Cloud Ressourcen erfassen, damit Sie Anwendungsleistungsdaten mit Infrastruktur-Telemetriedaten in Beziehung setzen können
  • Mithilfe von Exportern können Sie Telemetriedaten an Google Cloud Observability oder an das gewünschte Backend weiterleiten. Dazu gehören auch Backends, die OpenTelemetry nativ unterstützen.
  • Vereinfachen Sie das Onboarding mit empfohlenen Konfigurationen und Best Practices für die Selbstüberwachung, einschließlich Systemdiagnosen und Batchverarbeitung.
  • Das gehostete Docker-Image kann flexibel in jedem containerbasierten System bereitgestellt werden, einschließlich Kubernetes und GKE.

Best Practices

OpenTelemetry bietet eine Liste mit Best Practices für die Konfiguration des OpenTelemetry-Collectors und für die Skalierung des Collectors. In diesem Abschnitt finden Sie einige zusätzliche Empfehlungen.

Erweiterung „Systemdiagnose“ verwenden

Die Erweiterung für die Systemdiagnose ermöglicht eine HTTP-URL, mit der der Status des OpenTelemetry-Collectors geprüft werden kann. Die Verwendung dieser Erweiterung bietet folgende Vorteile:

  • Frühzeitige Problemerkennung: Systemdiagnosen ermöglichen ein proaktives Monitoring des Status des Collectors und damit die Erkennung potenzieller Probleme, bevor sich diese negativ auf die Telemetry-Daten auswirken. Diese vorbeugende Maßnahme trägt dazu bei, die Zuverlässigkeit der Observability-Pipeline zu gewährleisten.
  • Verbesserte Fehlerbehebung: Bei Problemen bieten Systemdiagnosen wertvolle Informationen zum aktuellen Status des Collectors. Diese Informationen vereinfachen die Diagnose und Behebung, reduzieren die Ausfallzeiten und optimieren die Fehlerbehebung.
  • Erhöhte Zuverlässigkeit: Die kontinuierliche Überwachung des Zustands des Collectors sorgt für einen reibungslosen Betrieb und verhindert unerwartete Ausfälle. Diese proaktive Maßnahme erhöht die Gesamtzuverlässigkeit des Observability-Systems und minimiert das Risiko von Datenverlusten oder Lücken in den Telemetriedaten.

In Kubernetes und GKE ist die Systemdiagnoseerweiterung mit Kubernetes-Aktivitäts- und Bereitschaftsprüfungen kompatibel. Informationen zum Einrichten dieser Prüfungen finden Sie unter Best Practices für Kubernetes: Systemdiagnosen mit Bereitschafts- und Aktivitätsprüfungen einrichten.

In Cloud Run kann eine einzelne Systemdiagnoseerweiterung als Endpunkt sowohl für Start- als auch für Aktivitätsprüfungen in Ihrer Cloud Run-Dienstkonfiguration dienen.

Batch-Prozessor verwenden

Der Batch-Prozessor erfasst Traces, Messwerte oder Protokolle und bündelt sie zu Batches für die Übertragung. Die Verwendung des Batch-Prozessors bietet folgende Vorteile:

  • Reduziert ausgehende Verbindungen: Durch Gruppieren von Datenübertragungen in Batches reduziert der OpenTelemetry Collector die Anzahl der ausgehenden Verbindungen erheblich. Dieser konsolidierte Ansatz reduziert die Kontingentnutzung und kann die Gesamtkosten für das Netzwerk senken.
  • Verbesserte Datenkomprimierung: Durch Batching wird eine effizientere Datenkomprimierung ermöglicht, wodurch die Gesamtgröße der übertragenen Daten reduziert wird.
  • Flexible Batch-Strategie: Sowohl die größen- als auch die zeitbasierte Batchverarbeitung werden unterstützt, um die Leistung für verschiedene Szenarien zu optimieren. Bei der größenbasierten Batchverarbeitung wird dafür gesorgt, dass Batches eine bestimmte Größe erreichen, bevor sie gesendet werden. Bei der zeitbasierten Batchverarbeitung werden Batches nach Ablauf eines bestimmten Zeitintervalls gesendet. So können Sie die Batch-Strategie an die spezifischen Merkmale Ihrer Daten und die Anforderungen Ihrer Anwendung anpassen.

Versionshinweise

Die Versionierung des von Google entwickelten OpenTelemetry Collectors erfolgt synchron mit dem Upstream-OpenTelemetry Collector. Die aktuelle Version ist v0.121.0. Das entsprechende Docker-Image, das in Artifact Registry gespeichert ist, lautet us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.121.0. Auf dieser Seite werden für jede neue Version die Änderungen aufgeführt, die für Nutzer am relevantesten sind. Google Cloud

  • 0.121.0:
    • Von Google entwickelter OpenTelemetry Collector: Erste Version
    • OpenTelemetry Collector-Hauptrepository: Versionshinweise
    • OpenTelemetry Collector Contrib-Repository: Versionshinweise

Support

Wenn Sie Probleme mit dem OpenTelemetry Collector von Google haben, einschließlich Funktionsanfragen, Fehlerberichten und allgemeinen Fragen, erstellen Sie ein Problem im entsprechenden GitHub-Repository. Diese Repositories werden von Google überwacht und Probleme werden nach dem Best-Effort-Prinzip priorisiert und behoben.

  • Repository für von Google erstellte OpenTelemetry Collector-Pakete, bei Problemen mit Folgendem:

    • Umgebung
    • Bereitstellung am Google Cloud
    • Authentifizierung in Google Cloud
    • Anfragen zum Hinzufügen neuer OpenTelemetry-Komponenten
  • OpenTelemetry Collector Contrib-Repository, für Probleme im Zusammenhang mit Folgendem:

    • Google-spezifische OpenTelemetry-Komponenten, z. B.:
      • googlecloudexporter
      • googlemanagedprometheusexporter
      • googleclientauthextension
      • resourcedetectionprocessor
    • Nicht von Google spezifische OpenTelemetry-Komponenten, die von der Upstream-Community verwaltet werden

Bei Problemen im Zusammenhang mit der Verwendung der Google Cloud-Observability-Dienste und ‑APIs durch den von Google entwickelten OpenTelemetry Collector, z. B. Serverfehler oder Kontingente, wenden Sie sich an den Cloud-Kundensupport.

Preise

Die Bereitstellung und Verwendung des von Google entwickelten OpenTelemetry Collector ist kostenlos.

Wenn Sie Telemetriedaten an Google Cloudsenden, werden Ihnen die Kosten nach Aufnahmevolumen in Rechnung gestellt. Informationen zu den Kosten für die Aufnahme von Traces, Logs und Messwerten von Google Cloud Managed Service for Prometheus finden Sie unter Preise für die Google Cloud-Beobachtbarkeit.

OpenTelemetry-Demo ausprobieren

In diesem Abschnitt wird beschrieben, wie Sie die OpenTelemetry-Demo fürGoogle Cloud mit dem von Google entwickelten OpenTelemetry-Collector bereitstellen und ausführen.

Dieser Abschnitt ist optional. Wenn Sie den von Google entwickelten Collector in Ihre eigenen Bereitstellungen einbinden möchten, lesen Sie die folgenden Dokumente:

Hinweise

Für die OpenTelemetry-Demo ist ein Kubernetes-Cluster erforderlich, für den die Workload Identity-Föderation konfiguriert ist. Informationen zum Einrichten der Identitätsföderation von Arbeitslasten für die OpenTelemetry-Demo finden Sie unter Voraussetzungen für Workload Identity.

Demo für die Verwendung des von Google entwickelten Collectors aktualisieren

Standardmäßig verwendet die OpenTelemetry-Demo den Upstream-OpenTelemetry-Collector. So verwenden Sie stattdessen den von Google entwickelten OpenTelemetry Collector:

  1. Klonen Sie das OpenTelemetry-Demo-Repository:

    git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
    
  2. Wechseln Sie zum Verzeichnis kubernetes.

    cd kubernetes
    
  3. Bearbeiten Sie die Datei opentelemetry-demo.yaml, um die Zeile für das zu verwendende Collector-Image zu ersetzen. Die Zeile sieht in etwa so aus, wobei sich die Version unterscheiden kann:

    image: "otel/opentelemetry-collector-contrib:0.108.0"
    

    Ersetzen Sie den Wert des Felds image: durch us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.121.0, sodass die Zeile so aussieht, und speichern Sie die Datei:

    image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.121.0"
    

Demo bereitstellen

Stellen Sie die Demo bereit, indem Sie die aktualisierte Datei opentelemetry-demo.yaml anwenden:

kubectl apply --namespace otel-demo -f opentelemetry-demo.yaml

Verbindung zur Demo herstellen

Nachdem Sie die aktualisierte Konfiguration angewendet haben, können Sie die Daten an einen lokalen Port weiterleiten. Wenn Sie beispielsweise eine Verbindung zur Demo unter localhost:8080 herstellen möchten, geben Sie den folgenden Befehl ein:

kubectl port-forward --n otel-demo svc/opentelemetry-demo-frontendproxy 8080:8080

Sie können dann über Ihren Browser eine Verbindung zur Demo unter localhost:8080 herstellen.

Telemetriedaten ansehen

In der OpenTelemetry-Demo werden Messwerte, Traces und Protokolle mithilfe des von Google entwickelten OpenTelemetry Collector an Google Cloud gesendet. Informationen zur von der Demo gesendeten spezifischen Telemetrie finden Sie in der Dokumentation zur Demo unter Telemetrie ansehen.

Messwerte ansehen

Der von Google entwickelte OpenTelemetry Collector erfasst Prometheus-Messwerte, die Sie mit dem Metrics Explorer aufrufen können. Die erfassten Messwerte hängen von der Instrumentierung der App ab. Der von Google entwickelte Collector schreibt jedoch auch einige eigene Messwerte.

So rufen Sie die vom OpenTelemetry-Collector von Google erfassten Messwerte auf:
  1. Rufen Sie in der Google Cloud Console die Seite Metrics Explorer auf.

    Zum Metrics Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wählen Sie in der Symbolleiste der Google Cloud Console Ihr Google Cloud-Projekt aus. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Anwendungen aktivierten Ordners aus.
  3. Maximieren Sie im Element Messwert das Menü Messwert auswählen, geben Sie Prometheus Target in die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:
    1. Wählen Sie im Menü Aktive Ressourcen die Option Prometheus-Ziel aus.
    2. Einen Messwert wählen Sie in den Menüs Aktive Messwertkategorien und Aktive Messwerte aus. Messwerte, die vom OpenTelemetry Collector von Google erfasst werden, haben das Präfix prometheus.googleapis.com.
    3. Klicken Sie auf Übernehmen.
  4. Konfigurieren Sie, wie die Daten angezeigt werden.

    Wenn die Messungen für einen Messwert kumulativ sind, normalisiert Metrics Explorer die gemessenen Daten automatisch nach dem Ausrichtungszeitraum. Dadurch wird im Diagramm eine Rate angezeigt. Weitere Informationen finden Sie unter Arten, Typen und Umwandlungen.

    Wenn ganzzahlige oder doppelte Werte gemessen werden, z. B. mit den counter-Messwerten, summiert der Metrics Explorer automatisch alle Zeitreihen. Wenn Sie dieses Verhalten ändern möchten, legen Sie im ersten Menü des Eintrags Aggregation die Option Keine fest.

    Weitere Informationen zum Konfigurieren eines Diagramms finden Sie unter Messwerte bei Verwendung von Metrics Explorer auswählen.

Traces ansehen

So rufen Sie Ihre Trace-Daten auf:

  1. Rufen Sie in der Google Cloud Console die Seite Trace Explorer auf:

    Zum Trace Explorer

    Sie können diese Seite auch über die Suchleiste finden.

  2. Wählen Sie in der Symbolleiste der Google Cloud Console Ihr Google Cloud-Projekt aus. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des Ordners für Anwendungen aus.
  3. Wählen Sie auf der Seite im Tabellenbereich eine Zeile aus.
  4. Wählen Sie im Gantt-Diagramm im Bereich Trace-Details einen Span aus.

    Ein Steuerfeld mit Informationen zur getrackten Anfrage wird geöffnet. Zu diesen Details gehören die Methode, der Statuscode, die Anzahl der Byte und der User-Agent des Aufrufers.

  5. Wählen Sie den Tab Logs und Ereignisse aus, um die mit diesem Trace verknüpften Logs aufzurufen.

    Auf dem Tab werden einzelne Logs angezeigt. Maximieren Sie den Logeintrag, um die Details anzusehen. Sie können auch auf Logs ansehen klicken und das Log mit dem Log-Explorer aufrufen.

Weitere Informationen zur Verwendung von Cloud Trace-Explorer finden Sie unter Traces suchen und untersuchen.

Logs ansehen

Im Log-Explorer können Sie Ihre Logs prüfen und sich auch die zugehörigen Traces ansehen, sofern vorhanden.

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.

  2. Suchen Sie einen Logeintrag aus Ihrer instrumentierten App. Maximieren Sie den Logeintrag, um die Details aufzurufen.

  3. Klicken Sie bei einem Logeintrag mit einer Trace-Nachricht auf Traces und wählen Sie dann Trace-Details anzeigen aus.

    Der Bereich Trace-Details wird geöffnet und zeigt den ausgewählten Trace an.

Weitere Informationen zur Verwendung des Log-Explorers finden Sie unter Logs mit dem Log-Explorer ansehen.