In diesem Dokument wird beschrieben, wie Sie den OpenTelemetry Collector bereitstellen, den Collector für die Verwendung des otlphttp-Exporters und der Telemetry (OTLP) API konfigurieren und einen Telemetriegenerator ausführen, um Messwerte in Cloud Monitoring zu schreiben. Sie können diese Messwerte dann in Cloud Monitoring aufrufen.
Wenn Sie Google Kubernetes Engine verwenden, können Sie Managed OpenTelemetry für GKE folgen, anstatt einen OpenTelemetry Collector, der die Telemetry API verwendet, manuell bereitzustellen und zu konfigurieren.
Wenn Sie ein SDK verwenden, um Messwerte aus einer Anwendung direkt an die Telemetry API zu senden, finden Sie unter SDKs zum Senden von Messwerten aus Anwendungen verwenden weitere Informationen und Beispiele.
Sie können auch einen OpenTelemetry Collector und die Telemetry API in Verbindung mit der OpenTelemetry-Instrumentierung ohne Code verwenden. Weitere Informationen finden Sie unter OpenTelemetry-Instrumentierung ohne Code für Java verwenden.
Hinweis
In diesem Abschnitt wird beschrieben, wie Sie Ihre Umgebung für die Bereitstellung und Verwendung des Collectors einrichten.
Google Cloud Projekt auswählen oder erstellen
Wählen Sie ein Projekt in Google Cloud für diese Anleitung aus. Wenn Sie noch kein Google Cloud -Projekt haben, erstellen Sie eines:
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Befehlszeilentools installieren
In diesem Dokument werden die folgenden Befehlszeilentools verwendet:
gcloudkubectl
Die Tools gcloud und kubectl sind Teil der Google Cloud CLI. Informationen zur Installation finden Sie unter Komponenten der Google Cloud CLI verwalten. Führen Sie den folgenden Befehl aus, um die installierten gcloud CLI-Komponenten aufzurufen:
gcloud components list
Führen Sie die folgenden Befehle aus, um die gcloud CLI für die Verwendung zu konfigurieren:
gcloud auth login gcloud config set project PROJECT_ID
APIs aktivieren
Aktivieren Sie die Cloud Monitoring API und die Telemetry API in IhremGoogle Cloud -Projekt. Achten Sie besonders auf die Telemetry API, telemetry.googleapis.com. Möglicherweise ist dies das erste Mal, dass Sie auf diese API stoßen.
Aktivieren Sie die APIs mit den folgenden Befehlen:
gcloud services enable monitoring.googleapis.com gcloud services enable telemetry.googleapis.com
Cluster erstellen
GKE-Cluster erstellen
Erstellt einen Google Kubernetes Engine-Cluster namens
otlp-test, indem der folgende Befehl ausgeführt wird:gcloud container clusters create-auto --location CLUSTER_LOCATION otlp-test --project PROJECT_IDNachdem der Cluster erstellt wurde, stellen Sie mit dem folgenden Befehl eine Verbindung zu ihm her:
gcloud container clusters get-credentials otlp-test --region CLUSTER_LOCATION --project PROJECT_ID
Kubernetes-Dienstkonto autorisieren
Mit den folgenden Befehlen werden dem Kubernetes-Dienstkonto die erforderlichen IAM-Rollen (Identity and Access Management) zugewiesen. Bei diesen Befehlen wird davon ausgegangen, dass Sie die Identitätsföderation von Arbeitslasten für GKE verwenden:
export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
gcloud projects add-iam-policy-binding projects/PROJECT_ID \
--role=roles/logging.logWriter \
--member=principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector \
--condition=None
gcloud projects add-iam-policy-binding projects/PROJECT_ID \
--role=roles/monitoring.metricWriter \
--member=principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector \
--condition=None
gcloud projects add-iam-policy-binding projects/PROJECT_ID \
--role=roles/telemetry.tracesWriter \
--member=principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector \
--condition=None
Wenn Ihr Dienstkonto ein anderes Format hat, können Sie den Befehl in der Dokumentation zu Google Cloud Managed Service for Prometheus verwenden, um das Dienstkonto zu autorisieren. Nehmen Sie dazu die folgenden Änderungen vor:
- Ersetzen Sie den Dienstkontonamen
gmp-test-sadurch Ihr Dienstkonto. - Weisen Sie die Rollen zu, die im vorherigen Befehlssatz aufgeführt sind, nicht nur die Rolle
roles/monitoring.metricWriter.
OpenTelemetry Collector bereitstellen
Erstellen Sie die Collector-Konfiguration, indem Sie die folgende YAML-Datei kopieren und in einer Datei mit dem Namen collector.yaml speichern. Sie finden die folgende Konfiguration auch auf GitHub im otlp-k8s-ingest-Repository.
Ersetzen Sie in Ihrer Kopie alle Vorkommen von ${GOOGLE_CLOUD_PROJECT} durch Ihre Projekt-ID PROJECT_ID.
OTLP für Prometheus-Messwerte funktioniert nur, wenn Sie den OpenTelemetry Collector in Version 0.140.0 oder höher verwenden.
Bereitgestellten OpenTelemetry Collector konfigurieren
Konfigurieren Sie das Collector-Deployment, indem Sie Kubernetes-Ressourcen erstellen.
Erstellen Sie den Namespace
opentelemetryund die Collector-Konfiguration im Namespace, indem Sie die folgenden Befehle ausführen:kubectl create namespace opentelemetry kubectl create configmap collector-config -n opentelemetry --from-file=collector.yamlKonfigurieren Sie den Collector mit Kubernetes-Ressourcen, indem Sie die folgenden Befehle ausführen:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/refs/heads/otlpmetric/k8s/base/2_rbac.yaml kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/refs/heads/otlpmetric/k8s/base/3_service.yaml kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/refs/heads/otlpmetric/k8s/base/4_deployment.yaml kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/refs/heads/otlpmetric/k8s/base/5_hpa.yamlWarten Sie, bis die Collector-Pods den Status „Running“ (Wird ausgeführt) erreicht haben und 1/1 Container bereit sind. In Autopilot dauert das etwa drei Minuten, wenn es sich um die erste bereitgestellte Arbeitslast handelt. Verwenden Sie den folgenden Befehl, um die Pods zu prüfen:
kubectl get po -n opentelemetry -wWenn Sie den Pod-Status nicht länger beobachten möchten, drücken Sie Strg+C, um den Befehl zu beenden.
Sie können auch die Collector-Logs prüfen, um sicherzustellen, dass keine offensichtlichen Fehler vorliegen:
kubectl logs -n opentelemetry deployment/opentelemetry-collector
Telemetriegenerator bereitstellen
Sie können Ihre Konfiguration mit dem Open-Source-Tool telemetrygen testen. Diese App generiert Telemetriedaten und sendet sie an den Collector.
Führen Sie den folgenden Befehl aus, um die
telemetrygen-App im Namespaceopentelemetry-demobereitzustellen:kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/refs/heads/main/sample/app.yamlNachdem Sie das Deployment erstellt haben, kann es eine Weile dauern, bis die Pods erstellt und ausgeführt werden. Führen Sie den folgenden Befehl aus, um den Status der Pods zu prüfen:
kubectl get po -n opentelemetry-demo -wWenn Sie den Pod-Status nicht länger beobachten möchten, drücken Sie Strg+C, um den Befehl zu beenden.
Messwert mit dem Metrics Explorer abfragen
Das telemetrygen-Tool schreibt in einen Messwert namens gen. Sie können diesen Messwert sowohl über die Query Builder-Oberfläche als auch über den PromQL-Abfrageeditor im Metrics Explorer abfragen.
Rufen Sie in der Google Cloud Console das leaderboard auf der Seite des Metrics Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Wenn Sie die Query Builder-Oberfläche des Metrics Explorer verwenden, lautet der vollständige Name des Messwerts
prometheus.googleapis.com/gen/gauge. - Wenn Sie den PromQL-Abfrageeditor verwenden, können Sie den Messwert mit dem Namen
genabfragen.
Das folgende Bild zeigt ein Diagramm des Messwerts gen im Metrics Explorer:
Cluster löschen
Nachdem Sie die Bereitstellung durch Abfragen des Messwerts überprüft haben, können Sie den Cluster löschen. Führen Sie den folgenden Befehl aus, um den Cluster zu löschen:
gcloud container clusters delete --location CLUSTER_LOCATION otlp-test --project PROJECT_ID
Nächste Schritte
- Informationen zur Verwendung eines OpenTelemetry Collectors und der Telemetry API mit der OpenTelemetry-Instrumentierung ohne Code finden Sie unter OpenTelemetry-Instrumentierung ohne Code für Java verwenden.
- Informationen zum Senden von Messwerten aus Anwendungen, die SDKs verwenden, finden Sie unter SDKs zum Senden von Messwerten aus Anwendungen verwenden.
- Informationen zur Migration zum
otlphttp-Exporter von einem anderen Exporter finden Sie unter Zum OTLP-Exporter migrieren. - Weitere Informationen zur Telemetry API finden Sie unter Telemetry API (OTLP) – Übersicht.