Der von Google entwickelte OpenTelemetry Collector

Der von Google entwickelte OpenTelemetry Collector ist der Open-Source-Build des OpenTelemetry Collector von Google, der aus Upstream-Komponenten über eine sichere Lieferkette in der Google-Infrastruktur erstellt wurde. OpenTelemetry, das Teil der Cloud Native Computing Foundation ist, bietet Open-Source-APIs, -Bibliotheken und -SDKs zum Erfassen von verteilten OpenTelemetry Protocol (OTLP)-Traces, -Messwerten und -Logs für das Anwendungsmonitoring.

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 Daten zur Anwendungsleistung mit Telemetriedaten zur Infrastruktur korrelieren 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.

Ab Version 0.134.0 wird der von Google entwickelte OpenTelemetry Collector gemäß dem Standard Supply-chain Levels for Software Artifacts (SLSA) Level 3 erstellt. Der Collector-Code und seine Abhängigkeiten werden kontinuierlich auf Sicherheitslücken gescannt. Weitere Informationen finden Sie unter Sicherheitsfunktionen.

Von Google entwickelten OpenTelemetry Collector verwenden

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

Diese Anleitung kann auch verwendet werden, um den Open-Source-Upstream-OpenTelemetry Collector so zu konfigurieren, dass Daten in Google Cloud Observability exportiert werden.

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

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

Beschreibung des von Google entwickelten OpenTelemetry Collector

Der von Google entwickelte OpenTelemetry Collector wird mit Upstream-OpenTelemetry-Komponenten und -Tools erstellt und vollständig aus der Build-Test-Release-Infrastruktur von Google (Artifact Registry) abgerufen. Der von Google entwickelte Collector ist mit einem OpenTelemetry Collector-Build aus dem Upstream-Repository kompatibel. Es wird auch als Docker-Image für die flexible Bereitstellung auf jedem containerbasierten System gehostet, 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 Beobachtbarkeit in Google Cloudbenötigen. Sie müssen keine Komponenten auswählen und Ihren eigenen Collector manuell erstellen. Mit dem von Google entwickelten Collector können Sie:

  • Metadaten für Google Cloud Ressourcen erfassen, um Leistungsdaten zur Anwendungsleistung mit Telemetriedaten zur Infrastruktur zu korrelieren.
  • Leiten Sie Telemetriedaten mithilfe von Exportern an Google Cloud Observability oder das Backend Ihrer Wahl weiter, einschließlich Backends, die OpenTelemetry nativ unterstützen.
  • Vereinfachen Sie das Onboarding mit empfohlenen Konfigurationen und Best Practices für das Self-Monitoring, einschließlich Systemdiagnosen und Batchverarbeitung.
  • Verwenden Sie das gehostete Docker-Image für eine flexible Bereitstellung auf jedem containerbasierten System, 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.

OTLP-gRPC-Exporter verwenden

Verwenden Sie den OTLP-gRPC-Exporter, um eine Verbindung zur Telemetry (OTLP) API (telemetry.googleapis.com) herzustellen. Die Telemetry API akzeptiert alle Telemetriedaten (Logs, Messwerte und Traces) im herstellerneutralen OTLP-Format. Wenn Sie Telemetriedaten an die Telemetry API senden, werden die Daten, die vom OpenTelemetry Collector fließen, mit maximaler Genauigkeit im Google Cloud -Speicher aufbewahrt.

Erweiterung für Systemdiagnosen verwenden

Die Systemdiagnose-Erweiterung ermöglicht eine HTTP-URL, die geprüft werden kann, um den Status des OpenTelemetry-Collectors zu ermitteln. Die Verwendung dieser Erweiterung bietet folgende Vorteile:

  • Früherkennung von Problemen: Systemdiagnosen ermöglichen ein proaktives Monitoring des Collector-Status, sodass potenzielle Probleme erkannt werden, bevor sie sich negativ auf Telemetriedaten auswirken. Diese vorbeugende Maßnahme trägt dazu bei, die Zuverlässigkeit der Beobachtbarkeitspipeline zu gewährleisten.
  • Verbesserte Fehlerbehebung: Wenn Probleme auftreten, bieten Systemdiagnosen wertvolle Einblicke in den aktuellen Status des Collectors. Diese Informationen vereinfachen die Diagnose und Behebung von Problemen, reduzieren Ausfallzeiten und optimieren die Fehlerbehebung.
  • Höhere Zuverlässigkeit: Durch die kontinuierliche Überwachung des Zustands des Collectors wird ein konsistenter Betrieb gewährleistet und unerwartete Ausfälle werden verhindert. Diese proaktive Maßnahme erhöht die Gesamtzuverlässigkeit des Beobachtbarkeitssystems und minimiert das Risiko von Datenverlusten oder Lücken in Telemetriedaten.

In Kubernetes und GKE ist die Systemdiagnose-Erweiterung 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 Systemdiagnose-Erweiterung als Endpunkt für Start- und Aktivitätsprüfungen in Ihrer Cloud Run-Dienstkonfiguration dienen.

Batchverarbeitung verwenden

Der Batchprozessor erfasst Traces, Messwerte oder Logs und bündelt sie für die Übertragung in Batches. Die Verwendung der Batchverarbeitung bietet folgende Vorteile:

  • Minimiert ausgehende Verbindungen: Durch die Gruppierung von Datenübertragungen in Batches reduziert der OpenTelemetry Collector die Anzahl der ausgehenden Verbindungen erheblich. Dieser konsolidierte Ansatz senkt die Kontingentnutzung und kann die Gesamtnetzwerkkosten senken.
  • Verbesserte Datenkomprimierung: Durch die Batchverarbeitung können Daten effizienter komprimiert werden, wodurch die Gesamtgröße der übertragenen Daten reduziert wird.
  • Flexibilität bei der Batchstrategie: Die Unterstützung von größen- und zeitbasiertem Batching bietet Flexibilität für die Optimierung für verschiedene Szenarien. Bei der größenbasierten Batchverarbeitung wird sichergestellt, dass Batches eine bestimmte Größe erreichen, bevor sie gesendet werden. Bei der zeitbasierten Batchverarbeitung werden Batches nach Ablauf eines bestimmten Zeitintervalls gesendet. Dank dieser Flexibilität können Sie die Batchstrategie an die spezifischen Merkmale Ihrer Daten und die besonderen Anforderungen Ihrer Anwendung anpassen.

googlesecretmanager-Anbieter verwenden

Mit dem googlesecretmanager-Anbieter können Sie vertrauliche Informationen, die für Konfigurationsdateien erforderlich sind, in Secret Manager speichern. Dieser Dienst wurde speziell für das sichere Speichern, Aufrufen und Verwalten vertraulicher Daten entwickelt. Die Verwendung des googlesecretmanager-Anbieters bietet folgende Vorteile:

  • Erweiterte Sicherheit: Ihre Konfigurationsdateien enthalten keine vertraulichen Informationen wie Passwörter.
  • Geringeres Risiko der Offenlegung: Secret Manager ruft Secrets während der Initialisierung des Collectors ab. Dadurch wird verhindert, dass Secrets im Klartext versehentlich in Logs aufgezeichnet werden.

Informationen zur Verwendung dieses Anbieters finden Sie unter Secrets in der Collector-Konfiguration verwalten.

Versionshinweise

Der von Google entwickelte OpenTelemetry Collector wird synchron mit dem Upstream-OpenTelemetry Collector versioniert. Die aktuelle Version ist v0.163.1. 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.163.1. Für jede neue Version werden die Änderungen, die für Google Cloud -Nutzer am relevantesten sind, auf dieser Seite aufgeführt.

Sicherheitsfunktionen

Ab Version 0.134.0 bietet der von Google entwickelte OpenTelemetry Collector Docker-Images, die dem Standard Supply-chain Levels for Software Artifacts (SLSA) Level 3 entsprechen und die folgenden Sicherheitsfunktionen bieten:

  • Sicherer Build: Die CI/CD-Pipeline für den von Google erstellten OpenTelemetry Collector generiert Attestierungen für jeden Container-Image-Release. Diese Attestierungen umfassen eine Verification Summary Attestation (VSA), die jedem Release auf GitHub als Asset angehängt wird.

  • Scannen auf Sicherheitslücken und Patchen: Der von Google entwickelte OpenTelemetry Collector wird kontinuierlich auf Sicherheitslücken gescannt. Wir bemühen uns, die FedRamp-SLOs für die Behebung von Sicherheitslücken einzuhalten. Wir legen großen Wert auf die Nutzersicherheit und erstellen den Collector regelmäßig mit aktualisierten Paketabhängigkeiten neu. Unsere CI/CD-Pipeline ist so konzipiert, dass kritische Sicherheitskorrekturen und Abhängigkeitsupdates schnell integriert werden können. Diese Verpflichtung minimiert das Risiko bekannter Sicherheitslücken und bietet Ihnen ein kontinuierlich sicheres und aktuelles Produkt.

  • Verifizierte und sichere Releases: Wir setzen Google-interne Richtlinien zur Codeintegrität durch, um sicherzustellen, dass nur Artefakte, die unseren strengen Sicherheitskriterien entsprechen, in die Produktion freigegeben werden. So erhalten Sie immer Software, die umfangreiche interne Sicherheitsprüfungen erfolgreich bestanden hat.

Support

Bei allen clientseitigen Problemen mit dem von Google entwickelten OpenTelemetry Collector, einschließlich Feature Requests, Fehlerberichten und allgemeinen Fragen, können Sie ein Problem im entsprechenden GitHub-Repository erstellen. Diese Repositories werden von Google überwacht. Probleme werden nach Best-Effort-Prinzip priorisiert und behoben.

  • Von Google erstelltes OpenTelemetry Collector-Paket-Repository für Probleme im Zusammenhang 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 Google-spezifische OpenTelemetry-Komponenten, die von der Upstream-Community verwaltet werden

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

Preise

Für die Bereitstellung und Verwendung des von Google entwickelten OpenTelemetry Collector fallen keine Kosten an.

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

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 bereit sind, den von Google entwickelten Collector in Ihre eigenen Bereitstellungen zu integrieren, lesen Sie die folgenden Dokumente:

Hinweis

Für die OpenTelemetry-Demo ist ein Kubernetes-Cluster erforderlich, für den die Workload Identity-Föderation konfiguriert ist. Informationen zum Einrichten der Workload Identity-Föderation für Ihren Cluster finden Sie unter Workload Identity-Föderation für GKE verwenden.

Demo aktualisieren, um den von Google entwickelten Collector zu verwenden

In der OpenTelemetry-Demo wird standardmäßig der Upstream-OpenTelemetry-Collector verwendet. Wenn Sie stattdessen den von Google entwickelten OpenTelemetry Collector verwenden möchten, gehen Sie so vor:

  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 die Version abweichen 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.163.1, sodass die Zeile wie folgt aussieht, und speichern Sie die Datei:

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

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

Mit der Demo verbinden

Nachdem Sie die aktualisierte Konfiguration angewendet haben, können Sie die Daten an einen lokalen Port weiterleiten. Führen Sie beispielsweise den folgenden Befehl aus, um eine Verbindung zur Demo unter localhost:8080 herzustellen:

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

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

Telemetriedaten ansehen

Die OpenTelemetry-Demo sendet Messwerte, Traces und Logs mithilfe des von Google entwickelten OpenTelemetry Collector an Google Cloud . Informationen zu den spezifischen Telemetriedaten, die von der Demo gesendet werden, finden Sie in der Dokumentation zur Demo unter Telemetriedaten 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 Anwendung ab. Der von Google entwickelte Collector schreibt jedoch auch einige eigene Messwerte.

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

    Zu 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 Projekt von Google Cloud aus. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Anwendungsverwaltung konfigurierten 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 von Google erstellten OpenTelemetry Collector erfasst werden, haben das Präfix prometheus.googleapis.com.
    3. Klicken Sie auf Übernehmen.
  4. Verwenden Sie das Element Filter, um Filter hinzuzufügen, mit denen Zeitreihen aus den Abfrageergebnissen entfernt werden.

  5. 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 counter-Messwerten, summiert der Metrics Explorer automatisch alle Zeitachsen. 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 aus.
  3. Wählen Sie im Tabellenbereich der Seite eine Zeile aus.
  4. Wählen Sie im Gantt-Diagramm im Bereich Trace-Details einen Span aus.

    Ein Steuerfeld mit Informationen zur verfolgten 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 das und die Seite Log-Explorer auf:

    Zum Log-Explorer

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

  2. Suchen Sie einen Logeintrag aus Ihrer instrumentierten Anwendung. Maximieren Sie den Logeintrag, um die Details anzusehen.

  3. Klicken Sie auf Traces für einen Logeintrag mit einer Trace-Nachricht 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.