In dieser Dokumentationsreihe wird der von Google entwickelte OpenTelemetry Collector beschrieben und es wird erläutert, wie Sie den Collector bereitstellen, um OTLP-Traces (OpenTelemetry Protocol), Messwerte und Logs aus instrumentierten Anwendungen zu erfassen und diese Daten in Google Cloud Observability und andere Back-Ends zu exportieren.
Der von Google entwickelte OpenTelemetry Collector ist ein Open-Source-Build des Upstream-OpenTelemetry Collector, der für die Produktion bereit ist und mit Upstream-OpenTelemetry Collector-Komponenten erstellt wurde. OpenTelemetry, das Teil der Cloud Native Computing Foundation ist, bietet Open-Source-APIs, ‑Bibliotheken und ‑SDKs zum Erfassen von verteilten Traces, Messwerten und Logs 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 Back-Ends senden. Der Collector erfasst auch Metadaten für Google Cloud -Ressourcen, sodass Sie Daten zur Anwendungsleistung mit Telemetriedaten der Infrastruktur in Beziehung setzen können. Wenn Sie den von Google entwickelten Collector mit Google Cloud Observability verwenden, erhalten Sie Informationen zur Verbesserung der Leistung Ihrer Anwendungen und Infrastruktur. Weitere Informationen zum Collector finden Sie unter Beschreibung des von Google entwickelten OpenTelemetry Collector.
Von Google entwickelten OpenTelemetry Collector verwenden
Mit dem von Google entwickelten Collector können Sie Telemetriedaten von Ihren Anwendungen erfassen, die in 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 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 zum Generieren von Traces, Messwerten und Logs aus Ihren Anwendungen mit OpenTelemetry-Instrumentierung finden Sie in den folgenden Dokumenten:
- Übersicht über die Instrumentierung
- Instrumentierungsansatz für Ihre Anwendung auswählen
- Traces und Messwerte mit OpenTelemetry-Instrumentierung generieren
Beschreibung des von Google entwickelten OpenTelemetry Collectors
Der von Google entwickelte OpenTelemetry Collector basiert auf Upstream-OpenTelemetry-Komponenten und -Tools und wird vollständig über die Google-Infrastruktur für Build, Test und Release (Artifact Registry) erstellt und abgerufen. Der von Google entwickelte Collector ist mit einem OpenTelemetry Collector-Build aus dem Upstream-Repository kompatibel. Es wird auch als Docker-Image gehostet, um eine flexible Bereitstellung auf jedem containerbasierten System zu ermöglichen, 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 Ihren 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 Telemetriedaten der Infrastruktur in Beziehung setzen können.
- Telemetriedaten können mithilfe von Exportern an Google Cloud Observability oder das Backend Ihrer Wahl weitergeleitet werden, einschließlich Backends, die OpenTelemetry nativ unterstützen.
- Das Onboarding wird durch empfohlene Konfigurationen und Best Practices für die Selbstüberwachung vereinfacht, einschließlich Systemdiagnosen und Batchverarbeitung.
- Verwenden Sie das gehostete Docker-Image für die flexible Bereitstellung auf jedem containerbasierten System, einschließlich Kubernetes und GKE.
Best Practices
OpenTelemetry führt eine Liste mit Best Practices für die Konfiguration des OpenTelemetry Collector und für die Skalierung des Collector. Dieser Abschnitt enthält einige zusätzliche Empfehlungen.
Erweiterung für Systemdiagnose verwenden
Die Health-Check-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 die proaktive Überwachung des Collector-Status. So können potenzielle Probleme erkannt werden, bevor sie sich negativ auf Telemetriedaten auswirken. Diese vorbeugende Maßnahme trägt zur Zuverlässigkeit der Observability-Pipeline bei.
- Verbesserte Fehlerbehebung: Bei Problemen bieten Systemdiagnosen wertvolle Informationen zum aktuellen Status des Collectors. Diese Informationen vereinfachen die Diagnose und Fehlerbehebung, wodurch Ausfallzeiten reduziert und die Fehlersuche optimiert wird.
- Höhere Zuverlässigkeit: Durch die kontinuierliche Überwachung des Collector-Zustands wird ein konsistenter Betrieb sichergestellt und unerwartete Fehler werden verhindert. Diese proaktive Maßnahme erhöht die allgemeine Zuverlässigkeit des Observability-Systems und minimiert das Risiko von Datenverlust oder Lücken in Telemetriedaten.
In Kubernetes und GKE ist die Health-Check-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 Systemdiagnoseerweiterung als Endpunkt für Start- und Aktivitätsprüfungen in Ihrer Cloud Run-Dienstkonfiguration dienen.
Batchprozessor verwenden
Der Batchprozessor erfasst Traces, Messwerte oder Logs und fasst sie zur Übertragung in Batches zusammen. Die Verwendung der Batchverarbeitung bietet folgende Vorteile:
- Minimiert ausgehende Verbindungen: Durch das Gruppieren von Datenübertragungen in Batches reduziert der OpenTelemetry Collector die Anzahl der ausgehenden Verbindungen erheblich. Dieser konsolidierte Ansatz senkt die Kontingentnutzung und kann die Gesamtkosten für das Netzwerk senken.
- Verbesserte Datenkomprimierung: Durch das Batching wird eine effizientere Datenkomprimierung ermöglicht, wodurch die Gesamtgröße der übertragenen Daten reduziert wird.
- Flexibilität bei der Batching-Strategie: Die Unterstützung sowohl für größen- als auch für zeitbasierte Batching-Strategien bietet Flexibilität bei der Optimierung für verschiedene Szenarien. Beim größenbasierten Batching werden Batches erst gesendet, wenn sie eine bestimmte Größe erreicht haben. Beim zeitbasierten Batching werden Batches nach einem bestimmten Zeitintervall gesendet. So können Sie die Batching-Strategie 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, Verwalten und Abrufen vertraulicher Daten entwickelt. Die Verwendung des Anbieters googlesecretmanager
bietet folgende Vorteile:
- Erhöhte Sicherheit: Ihre Konfigurationsdateien enthalten keine vertraulichen Informationen wie Passwörter.
- Geringeres Risiko der Offenlegung: Secret Manager ruft Secrets bei 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.129.0. Das entsprechende Docker-Image, das in Artifact Registry gespeichert ist, ist us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.0. Für jede neue Version werden auf dieser Seite die Änderungen aufgeführt, die für Google Cloud Nutzer am relevantesten sind.
0.129.0:
- Von Google entwickelter OpenTelemetry Collector: Aktualisieren Sie auf die Version v0.129.0 von OpenTelemetry Collector Core und OpenTelemetry Collector Contrib.
- Bekannte Probleme:
- Prometheus-Empfänger: Die einfache Authentifizierung für URLs funktioniert nicht mehr (Link zum Problem);
- Dieses Problem betrifft die Versionen 0.127.0, 0.128.0 und 0.129.0.
- Verwenden Sie zur Behebung des Fehlers Version 0.126.0 oder niedriger.
- Prometheus-Empfänger: Die einfache Authentifizierung für URLs funktioniert nicht mehr (Link zum Problem);
- OpenTelemetry Collector Core-Repository: Versionshinweise (v0.129.0)
- OpenTelemetry Collector Contrib-Repository: Versionshinweise (v0.129.0)
0.128.0:
- Von Google entwickelter OpenTelemetry Collector: Aktualisieren Sie auf die Version v0.128.0 von OpenTelemetry Collector Core und OpenTelemetry Collector Contrib.
- OpenTelemetry Collector Core-Repository: Versionshinweise (v0.127.0)
- OpenTelemetry Collector Contrib-Repository: Versionshinweise (v0.127.0)
0.127.0:
- Von Google entwickelter OpenTelemetry Collector: Update auf OpenTelemetry Collector Core und OpenTelemetry Collector Contrib-Version v0.127.0.
- OpenTelemetry Collector Core-Repository: Versionshinweise (v0.127.0)
- OpenTelemetry Collector Contrib-Repository: Versionshinweise (v0.127.0)
0.126.0:
- Von Google entwickelter OpenTelemetry Collector: Update auf OpenTelemetry Collector Core und OpenTelemetry Collector Contrib Version v0.126.0.
- Neue Komponenten hinzugefügt:
- Prozessoren:
metricstarttime
- Anbieter:
googlesecretmanager
. Informationen zur Verwendung dieses Anbieters, um Secrets im Klartext in Ihrer Collector-Konfiguration zu vermeiden, finden Sie unter Secrets in der Collector-Konfiguration verwalten.
- Prozessoren:
- OpenTelemetry Collector Core-Repository:
- OpenTelemetry Collector Contrib-Repository:
0.124.1:
- Google-Built OpenTelemetry Collector: Aktualisieren Sie auf OpenTelemetry Collector Core-Version v0.124.0 und OpenTelemetry Collector Contrib-Version v0.124.1.
- Neue Komponenten hinzugefügt:
- Empfänger:
dockerstats
,jmx
,redis
,statsd
,syslog
- Prozessoren:
metricsgeneration
- Empfänger:
- OpenTelemetry Collector Core-Repository:
- OpenTelemetry Collector Contrib-Repository:
0.122.1:
- Von Google entwickelter OpenTelemetry Collector: Aktualisieren Sie auf OpenTelemetry Collector Core-Version v0.122.1 und OpenTelemetry Collector Contrib-Version v0.122.0.
- Neue Komponente hinzugefügt:
googleclientauthextension
- Bekannte Probleme:
- Wenn Sie den OTLP-Export der Collector-Selbsttelemetrie verwenden, beachten Sie das folgende Problem mit dem OpenTelemetry Collector: https://github.com/open-telemetry/opentelemetry-collector/issues/12701.
- OpenTelemetry Collector Core-Repository: Versionshinweise
- OpenTelemetry Collector Contrib-Repository: Versionshinweise
0.121.0:
- Von Google entwickelter OpenTelemetry Collector: Erste Version
- OpenTelemetry Collector Core-Repository: Versionshinweise
- OpenTelemetry Collector Contrib-Repository: Versionshinweise
Support
Bei allen clientseitigen Problemen mit dem von Google entwickelten OpenTelemetry Collector, 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.
Von Google erstelltes OpenTelemetry Collector-Paketierungs-Repository für Probleme im Zusammenhang mit Folgendem:
- Umgebung
- Bereitstellung auf 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
- Google-spezifische OpenTelemetry-Komponenten, z. B.:
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 Cloud Customer Care.
Preise
Für die Bereitstellung und Verwendung des von Google entwickelten OpenTelemetry Collector fallen keine Gebühren 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 Preise für Google Cloud Observability.
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, finden Sie weitere Informationen in den folgenden Dokumenten:
- Collector in Google Kubernetes Engine bereitstellen
- Collector auf Container-Optimized OS bereitstellen
- Collector in Cloud Run bereitstellen
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 die Identitätsföderation von Arbeitslasten.
Demo für die Verwendung des von Google entwickelten Collectors aktualisieren
Standardmäßig wird in der OpenTelemetry-Demo der Upstream-OpenTelemetry Collector verwendet. Wenn Sie stattdessen den von Google entwickelten OpenTelemetry Collector verwenden möchten, gehen Sie so vor:
Klonen Sie das OpenTelemetry-Demorepository:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
Wechseln Sie zum Verzeichnis
kubernetes
.cd kubernetes
Bearbeiten Sie die Datei
opentelemetry-demo.yaml
, um die Zeile für das zu verwendende Collector-Image zu ersetzen. Die Zeile sieht so aus, wobei die Version unterschiedlich sein kann:image: "otel/opentelemetry-collector-contrib:0.108.0"
Ersetzen Sie den Wert des Felds
image:
durchus-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.0
, sodass die Zeile so aussieht:image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.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, führen Sie den folgenden Befehl aus:
kubectl port-forward --n otel-demo svc/opentelemetry-demo-frontendproxy 8080:8080
Anschließend können Sie mit Ihrem Browser unter localhost:8080
auf die Demo zugreifen.
Telemetrie ansehen
In der OpenTelemetry-Demo werden Messwerte, Traces und Logs mithilfe des von Google entwickelten OpenTelemetry Collectors an Google Cloud gesendet. 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 App ab. Der von Google entwickelte Collector schreibt jedoch auch einige eigene Messwerte.
So rufen Sie die vom Google-eigenen OpenTelemetry Collector erfassten Messwerte auf:-
Rufen Sie in der Google Cloud Console die Seite leaderboard Metrics Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- 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 Apps aktivierten Ordners aus.
- 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:- Wählen Sie im Menü Aktive Ressourcen die Option Prometheus-Ziel aus.
- Einen Messwert wählen Sie in den Menüs Aktive Messwertkategorien und Aktive Messwerte aus.
Messwerte, die vom Google-eigenen OpenTelemetry Collector erfasst werden, haben das Präfix
prometheus.googleapis.com
. - Klicken Sie auf Übernehmen.
- 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 das erste Menü des Eintrags Aggregation auf 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:
-
Rufen Sie in der Google Cloud Console die Seite Trace Explorer auf:
Sie können diese Seite auch über die Suchleiste finden.
- 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 Apps aktivierten Ordners aus.
- Wählen Sie im Tabellenbereich der Seite eine Zeile aus.
Wählen Sie im Gantt-Diagramm im Bereich Trace-Details einen Span aus.
Ein Bereich 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.
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.
-
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
Suchen Sie nach einem Logeintrag aus Ihrer instrumentierten App. Maximieren Sie den Logeintrag, um die Details anzusehen.
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.