Ce document explique comment déployer le collecteur OpenTelemetry, le configurer pour qu'il utilise l'exportateur otlphttp et l'API Telemetry (OTLP), et exécuter un générateur de télémétrie pour écrire des métriques dans Cloud Monitoring. Vous pouvez ensuite consulter ces métriques dans Cloud Monitoring.
Si vous utilisez Google Kubernetes Engine, vous pouvez suivre Managed OpenTelemetry pour GKE au lieu de déployer et de configurer manuellement un collecteur OpenTelemetry qui utilise l'API Telemetry.
Si vous utilisez un SDK pour envoyer des métriques d'une application directement à l'API Telemetry, consultez Utiliser des SDK pour envoyer des métriques depuis des applications pour obtenir des informations et des exemples supplémentaires.
Vous pouvez également utiliser un collecteur OpenTelemetry et l'API Telemetry en association avec l'instrumentation OpenTelemetry sans code. Pour en savoir plus, consultez Utiliser l'instrumentation OpenTelemetry sans code pour Java.
Avant de commencer
Cette section explique comment configurer votre environnement pour déployer et utiliser le collecteur.
Sélectionner ou créer un projet Google Cloud
Choisissez un projet Google Cloud pour ce tutoriel. Si vous n'avez pas encore de projet Google Cloud , créez-en un :
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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.
Installer les outils de ligne de commande
Ce document utilise les outils de ligne de commande suivants :
gcloudkubectl
Les outils gcloud et kubectl font partie de Google Cloud CLI. Pour en savoir plus sur leur installation, consultez Gérer les composants de Google Cloud CLI. Pour afficher les composants de gcloud CLI que vous avez installés, exécutez la commande suivante :
gcloud components list
Pour configurer la gcloud CLI, exécutez les commandes suivantes :
gcloud auth login gcloud config set project PROJECT_ID
Activer les API
Activez l'API Cloud Monitoring et l'API Telemetry dans votre projetGoogle Cloud . Portez une attention particulière à l'API Telemetry, telemetry.googleapis.com. C'est peut-être la première fois que vous rencontrez cette API.
Activez les API en exécutant les commandes suivantes :
gcloud services enable monitoring.googleapis.com gcloud services enable telemetry.googleapis.com
Créer un cluster
créer un cluster GKE ;
Créez un cluster Google Kubernetes Engine nommé
otlp-testen exécutant la commande suivante :gcloud container clusters create-auto --location CLUSTER_LOCATION otlp-test --project PROJECT_IDUne fois le cluster créé, connectez-vous à celui-ci en exécutant la commande suivante :
gcloud container clusters get-credentials otlp-test --region CLUSTER_LOCATION --project PROJECT_ID
Autoriser le compte de service Kubernetes
Les commandes suivantes accordent les rôles IAM (Identity and Access Management) nécessaires au compte de service Kubernetes. Ces commandes supposent que vous utilisez la fédération d'identité de charge de travail pour GKE :
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
Si votre compte de service a un format différent, vous pouvez utiliser la commande de la documentation Google Cloud Managed Service pour Prometheus pour autoriser le compte de service, en apportant les modifications suivantes :
- Remplacez le nom du compte de service
gmp-test-sapar le vôtre. - Attribuez les rôles indiqués dans l'ensemble de commandes précédent, et pas seulement le rôle
roles/monitoring.metricWriter.
Déployer le collecteur OpenTelemetry
Créez la configuration du collecteur en copiant le fichier YAML suivant et en le plaçant dans un fichier nommé collector.yaml. Vous trouverez également la configuration suivante sur GitHub dans le dépôt otlp-k8s-ingest.
Dans votre copie, veillez à remplacer l'occurrence de ${GOOGLE_CLOUD_PROJECT} par l'ID de votre projet, PROJECT_ID.
OTLP pour les métriques Prometheus ne fonctionne que lorsque vous utilisez le collecteur OpenTelemetry version 0.140.0 ou ultérieure.
Configurer le collecteur OpenTelemetry déployé
Configurez le déploiement du collecteur en créant des ressources Kubernetes.
Créez l'espace de noms
opentelemetryet la configuration du collecteur dans l'espace de noms en exécutant les commandes suivantes :kubectl create namespace opentelemetry kubectl create configmap collector-config -n opentelemetry --from-file=collector.yamlConfigurez le collecteur avec les ressources Kubernetes en exécutant les commandes suivantes :
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.yamlAttendez que les pods du collecteur atteignent l'état "Running" (En cours d'exécution) et que 1/1 conteneurs soient prêts. Cela prend environ trois minutes sur Autopilot, si c'est la première charge de travail déployée. Pour vérifier les pods, exécutez la commande suivante :
kubectl get po -n opentelemetry -wPour arrêter la surveillance de l'état du pod, saisissez Ctrl+C pour arrêter la commande.
Vous pouvez également consulter les journaux du collecteur pour vous assurer qu'il n'y a pas d'erreurs évidentes :
kubectl logs -n opentelemetry deployment/opentelemetry-collector
Déployer le générateur de télémétrie
Vous pouvez tester votre configuration à l'aide de l'outil Open Source telemetrygen. Cette application génère des données de télémétrie et les envoie au collecteur.
Pour déployer l'application
telemetrygendans l'espace de nomsopentelemetry-demo, exécutez la commande suivante :kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/refs/heads/main/sample/app.yamlUne fois le déploiement créé, la création et le démarrage des pods peuvent prendre un certain temps. Pour vérifier l'état des pods, exécutez la commande suivante :
kubectl get po -n opentelemetry-demo -wPour arrêter la surveillance de l'état du pod, saisissez Ctrl+C pour arrêter la commande.
Interroger une métrique à l'aide de l'explorateur de métriques
L'outil telemetrygen écrit dans une métrique appelée gen. Vous pouvez interroger cette métrique à partir de l'interface du générateur de requêtes et de l'éditeur de requêtes PromQL dans l'explorateur de métriques.
Dans la console Google Cloud , accédez à la page leaderboard Explorateur de métriques.
Accéder à l'Explorateur de métriques
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Si vous utilisez l'interface du générateur de requêtes de l'explorateur de métriques, le nom complet de la métrique est
prometheus.googleapis.com/gen/gauge. - Si vous utilisez l'éditeur de requête PromQL, vous pouvez interroger la métrique à l'aide du nom
gen.
L'image suivante montre un graphique de la métrique gen dans l'explorateur de métriques :
Supprimer le cluster
Une fois votre déploiement vérifié en interrogeant la métrique, vous pouvez supprimer le cluster. Pour supprimer le cluster, exécutez la commande suivante :
gcloud container clusters delete --location CLUSTER_LOCATION otlp-test --project PROJECT_ID
Étapes suivantes
- Pour savoir comment utiliser un collecteur OpenTelemetry et l'API Telemetry avec l'instrumentation OpenTelemetry sans code, consultez Utiliser l'instrumentation OpenTelemetry sans code pour Java.
- Pour savoir comment envoyer des métriques à partir d'applications qui utilisent des SDK, consultez Utiliser des SDK pour envoyer des métriques à partir d'applications.
- Pour savoir comment migrer vers l'exportateur
otlphttpà partir d'un autre exportateur, consultez Migrer vers l'exportateur OTLP. - Pour en savoir plus sur l'API Telemetry, consultez la présentation de l'API Telemetry (OTLP).