In diesem Dokument wird beschrieben, wie Sie den OpenTelemetry Collector in einem GKE-Cluster ausführen, um OTLP-Protokolle, -Messwerte und -Traces aus instrumentierten Anwendungen zu erfassen und diese Daten nach Google Cloud zu exportieren.
Hinweise
Für das Ausführen des OpenTelemetry Collector in GKE sind die folgenden 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 gewünschte 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 direkt über GitHub mit den folgenden Befehlen 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.
Wenn Sie den Collector überwachen möchten, installieren Sie 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 zur Installation finden Sie unter Beispiel-Dashboards installieren.
Collector konfigurieren
Die selbst verwaltete OTLP-Aufnahmepipeline enthält eine Standardkonfiguration des OpenTelemetry-Collectors, die für die Übermittlung großer Mengen von OTLP-Messwerten, ‑Protokollen und ‑Traces mit konsistenten GKE- und Kubernetes-Metadaten entwickelt wurde. Außerdem soll es häufige Probleme bei der Datenaufnahme verhindern.
Möglicherweise haben Sie jedoch spezielle Anforderungen, die eine Anpassung der Standardkonfiguration erfordern. In diesem Abschnitt werden die mit der Pipeline gelieferten Standardeinstellungen beschrieben und wie Sie diese nach Ihren Anforderungen anpassen können.
Die Standardkonfiguration des Collectors befindet sich auf GitHub unter config/collector.yaml
:
Exporteure
Zu den Standard-Exportern gehören der Exporter googlecloud
(für Protokolle und Traces) und der Exporter googlemanagedprometheus
(für Messwerte).
Der googlecloud
-Exporter ist mit einem Standardprotokollnamen 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
: Mit dieser Option wird die Arbeitsspeichernutzung des Collectors auf einem angemessenen Niveau begrenzt, um Abstürze aufgrund von Arbeitsspeichermangel zu verhindern. Dazu werden Datenpunkte über diesem Niveau verworfen.resourcedetection
: Google Cloud-Ressourcenlabels wie Clustername und Projekt-ID werden automatisch erkannt.transform
: Benennt Messwertlabels um, die mit Google Cloud-überwachten Ressourcenfeldern kollidieren würden.
Empfänger
Die Standardkonfiguration enthält nur den otlp
-Empfänger.
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 senden.
Nächste Schritte: Telemetriedaten erfassen und ansehen
In diesem Abschnitt wird beschrieben, wie Sie eine Beispielanwendung bereitstellen, diese Anwendung auf den OTLP-Endpunkt des Collectors verweisen und die Telemetriedaten in Google Cloud aufrufen. Die Beispielanwendung ist ein kleiner Generator, der Traces, Protokolle und Messwerte an 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, die das OpenTelemetry SDK verwenden, auf den Endpunkt des Collectors verweisen lassen möchten, legen Sie die Umgebungsvariable OTEL_EXPORTER_OTLP_ENDPOINT
auf http://opentelemetry-collector.opentelemetry.svc.cluster.local:4317
fest.
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.