In diesem Dokument wird gezeigt, wie Sie den OpenTelemetry Collector in einem GKE-Cluster ausführen, um OTLP-Logs, -Messwerte und -Traces aus instrumentierten Anwendungen zu erfassen und diese Daten nach Google Cloud zu exportieren.
Hinweise
Für die Ausführung des OpenTelemetry Collector in GKE sind folgende Ressourcen erforderlich:
Ein Google Cloud-Projekt mit aktivierter Cloud Monitoring API, Cloud Trace API und Cloud Logging API.
Wenn Sie kein Google Cloud-Projekt haben, gehen Sie so vor:
Wechseln Sie in der Google Cloud Console zu Neues Projekt:
Geben Sie im Feld Projektname einen Namen für Ihr Projekt ein und klicken Sie dann auf Erstellen.
Wechseln Sie zu Billing (Abrechnung):
Wählen Sie das Projekt aus, das Sie gerade erstellt haben, falls es nicht bereits oben auf der Seite ausgewählt wurde.
Sie werden aufgefordert, ein vorhandenes Zahlungsprofil auszuwählen oder ein neues Zahlungsprofil zu erstellen.
Die Monitoring API, die Trace API und die Logging API sind für neue Projekte standardmäßig aktiviert.
Wenn Sie bereits ein Google Cloud-Projekt haben, dann stellen Sie sicher, dass die Monitoring API, die Trace API und die Logging API aktiviert sind:
Gehen Sie zu APIs & Dienste:
Wählen Sie Ihr Projekt aus.
Klicken Sie auf add APIs und Dienste aktivieren.
Suchen Sie nach den einzelnen APIs anhand ihrer Namen.
Klicken Sie in den Suchergebnissen auf die benannte API. Die Monitoring API wird als "Stackdriver Monitoring API" angezeigt.
Wenn "API aktiviert" nicht angezeigt wird, klicken Sie auf die Schaltfläche Aktivieren.
Einen Kubernetes-Cluster. Wenn Sie keinen Kubernetes-Cluster haben, folgen Sie der Anleitung in der Kurzanleitung für GKE.
Die folgenden Befehlszeilentools:
gcloud
kubectl
Die Tools
gcloud
undkubectl
sind Teil der Google Cloud CLI. Informationen zur Installation finden Sie unter Komponenten der Google Cloud-Befehlszeile verwalten. Führen Sie den folgenden Befehl aus, um die installierten gloud CLI-Komponenten aufzurufen:gcloud components list
Collector bereitstellen
Die Collector-Pipeline kann mit den folgenden Befehlen direkt von GitHub bereitgestellt werden, nachdem Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts ersetzt haben:
export GCLOUD_PROJECT=PROJECT_ID kubectl kustomize https://github.com/GoogleCloudPlatform/otlp-k8s-ingest.git/k8s/base | envsubst | kubectl apply -f -
Collector beobachten und debuggen
Der OpenTelemetry Collector bietet sofort einsetzbare Messwerte zur Selbstbeobachtbarkeit, mit denen Sie die Leistung überwachen und eine kontinuierliche Verfügbarkeit der OTLP-Aufnahmepipeline gewährleisten können.
Installieren Sie zum Überwachen des Collectors das Beispiel-Dashboard für den Collector. Dieses Dashboard bietet einen übersichtlichen Überblick über verschiedene Messwerte des Collectors, einschließlich Betriebszeit, Arbeitsspeichernutzung und API-Aufrufe an Google Cloud Observability.
So installieren Sie das Dashboard:
-
Rufen Sie in der Google Cloud Console die Seite Dashboards auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Wählen Sie den Tab Beispielbibliothek aus.
- Wählen Sie die Kategorie OpenTelemetry Collector aus.
- Wählen Sie das Dashboard "OpenTelemetry Collector" aus.
- Klicken Sie auf Importieren.
Weitere Informationen zum Installationsprozess finden Sie unter Beispiel-Dashboards installieren.
Collector konfigurieren
Die selbstverwaltete OTLP-Aufnahmepipeline enthält eine OpenTelemetry Collector-Standardkonfiguration, die für die Bereitstellung großer Mengen von OTLP-Messwerten, -Logs und -Traces mit konsistenten GKE- und Kubernetes-Metadaten vorgesehen ist. Außerdem sollen häufige Datenaufnahmeprobleme verhindert werden.
Möglicherweise haben Sie jedoch spezielle Anforderungen, die eine Anpassung der Standardkonfiguration erfordern. In diesem Abschnitt werden die mit der Pipeline gelieferten Standardwerte beschrieben und wie Sie sie an Ihre Anforderungen anpassen können.
Die Standard-Collector-Konfiguration befindet sich auf GitHub als config/collector.yaml
:
Exporteure
Die Standard-Exporter umfassen den Exporter googlecloud
(für Logs und Traces) und den Exporter googlemanagedprometheus
(für Messwerte).
Der Exporter googlecloud
ist mit einem Standard-Lognamen konfiguriert. Der Exporter googlemanagedprometheus
erfordert keine Standardkonfiguration. Weitere Informationen zur Konfiguration dieses Exporters finden Sie unter Erste Schritte mit dem OpenTelemetry Collector in der Dokumentation zu Google Cloud Managed Service for Prometheus.
Prozessoren
Die Standardkonfiguration umfasst die folgenden Prozessoren:
batch
: Konfiguriert, um Telemetrieanfragen mit der maximalen Anzahl von Einträgen pro Anfrage in Google Cloud oder mit dem Google Cloud-Mindestintervall von 5 Sekunden (je nachdem, was zuerst erreicht ist) in Batches zu verarbeiten.k8sattributes
: Ordnet Kubernetes-Ressourcenattribute automatisch Telemetrielabels zu.memory_limiter
: Beschränkt die Collector-Speichernutzung auf ein angemessenes Niveau, um Abstürze aufgrund fehlenden Arbeitsspeichers zu verhindern. Dazu werden Datenpunkte über dieses Niveau hinaus verworfen.resourcedetection
: Erkennt automatisch Google Cloud-Ressourcenlabels wie Clustername und Projekt-ID.transform
: Benennt Messwertlabels um, die mit überwachten Ressourcenfeldern von Google Cloud kollidieren würden.
Empfänger
Die Standardkonfiguration enthält nur den Empfänger otlp
.
Unter Instrumentierungsansatz auswählen finden Sie eine detaillierte Anleitung zur Instrumentierung Ihrer Anwendungen, um OTLP-Traces und -Messwerte an den OTLP-Endpunkt des Collectors zu übertragen.
Nächste Schritte: Telemetrie erfassen und ansehen
In diesem Abschnitt wird beschrieben, wie Sie eine Beispielanwendung bereitstellen, diese Anwendung auf den OTLP-Endpunkt des Collectors verweisen und die Telemetrie in Google Cloud aufrufen. Die Beispielanwendung ist ein kleiner Generator, der Traces, Logs und Messwerte in den Collector exportiert.
Wenn Sie bereits eine Anwendung haben, die mit einem OpenTelemetry SDK instrumentiert ist, können Sie Ihre Anwendung stattdessen auf den Endpunkt des Collectors verweisen.
Führen Sie den folgenden Befehl aus, um die Beispielanwendung bereitzustellen:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/main/sample/app.yaml
Wenn Sie vorhandene Anwendungen verweisen möchten, die das OpenTelemetry SDK am Endpunkt des Collectors verwenden, setzen Sie die Umgebungsvariable OTEL_EXPORTER_OTLP_ENDPOINT
auf http://opentelemetry-collector.opentelemetry.svc.cluster.local:4317
.
Nach einigen Minuten beginnt die von der Anwendung generierte Telemetrie, für jedes Signal durch den Collector an die Google Cloud Console zu fließen.