Ce document explique comment déployer le collecteur OpenTelemetry, configurer
le collecteur 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 la section OpenTelemetry géré 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 la section Utiliser des SDK pour envoyer des métriques à partir d'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 sans code OpenTelemetry. Pour en savoir plus, consultez la section Utiliser l'instrumentation sans code OpenTelemetry 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 Google Cloud projet
Choisissez un Google Cloud projet pour cette procédure. Si vous n'en avez pas encore, créez-en un Google Cloud :
-
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 la page
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 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
Google Cloud projet. Portez une attention particulière à l'
API Telemetry, telemetry.googleapis.com : il s'agit peut-être de 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ée 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-y 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 attribuent les rôles Identity and Access Management (IAM) nécessaires au compte de service Kubernetes. Ces commandes supposent que vous utilisez Workload Identity Federation 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./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./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./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 votre compte de service. - Attribuez les rôles affiché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 pouvez également trouver
la configuration suivante sur GitHub dans le otlp-k8s-ingest
dépôt.
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 des 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" et que 1/1 conteneurs soient prêts. Cela prend environ trois minutes sur Autopilot, s'il s'agit de 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 de surveiller l'état du pod, appuyez sur Ctrl+C.
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 de surveiller l'état du pod, appuyez sur Ctrl+C.
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 Google Cloud console, accédez à la leaderboard page 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êtes 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
Après avoir vérifié votre déploiement 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
Utiliser d'autres collecteurs basés sur OpenTelemetry
Vous pouvez peut-être utiliser d'autres collecteurs basés sur OpenTelemetry pour envoyer des métriques OTLP à l'API Telemetry, bien que Google Cloud ne fournisse pas d'assistance client pour les collecteurs non standards basés sur OpenTelemetry.
Par exemple, vous pouvez envoyer des métriques à l'aide de
Grafana Alloy version 1.16.0 ou
ultérieure en vous authentifiant avec le otelcol.auth.google
composant
et en le configurant de la même manière qu'un collecteur OpenTelemetry standard
à l'aide des instructions de ce document.
Étape suivante
- Pour en savoir plus sur l'utilisation d'un collecteur OpenTelemetry et de l' API Telemetry avec l'instrumentation sans code OpenTelemetry, consultez la section Utiliser l'instrumentation sans code OpenTelemetry pour Java.
- Pour en savoir plus sur l'envoi de métriques à partir d'applications qui utilisent des SDK, consultez la section Utiliser des SDK pour envoyer des métriques à partir d'applications.
- Pour en savoir plus sur la migration vers l'exportateur
otlphttpà partir d'un autre exportateur, consultez la section Migrer vers l'exportateur OTLP. - Pour en savoir plus sur l'API Telemetry, consultez la présentation de l'API Telemetry (OTLP).