Ce document explique comment exécuter le collecteur OpenTelemetry conçu par Google sur Container-Optimized OS pour collecter les journaux, les métriques et les traces OTLP à partir d'applications instrumentées, puis exporter ces données vers Google Cloud.
Avant de commencer
L'exécution du collecteur OpenTelemetry nécessite les ressources suivantes :
- Connectez-vous à votre Google Cloud compte. Si vous n'avez jamais utilisé Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. 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.
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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.
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Une machine virtuelle (VM) Container-Optimized OS. Si vous ne disposez pas d'une VM Container-Optimized OS, suivez les instructions de la section Créer et configurer des instances.
- Une installation de
gcloud. Pour en savoir plus sur l'installation degcloud, consultez Installer Google Cloud CLI.
Configurer les autorisations pour le collecteur
Par défaut, les VM Container-Optimized OS utilisent le
compte de service Compute Engine par défaut,
PROJECT_NUMBER-compute@developer.gserviceaccount.com.
Ce compte de service dispose généralement des rôles IAM (Identity and Access Management) nécessaires pour écrire la télémétrie décrite dans ce document :
- Rédacteur de métriques Monitoring (
roles/monitoring.metricWriter) - Rédacteur de journaux (
roles/logging.logWriter) - Agent Cloud Trace
Si vous configurez un compte de service personnalisé pour votre instance, consultez Gérer l'accès aux comptes de service.
Déployer le collecteur
Pour exécuter le collecteur OpenTelemetry conçu par Google, vous devez fournir un fichier de configuration pour votre VM Container-Optimized OS. Vous pouvez
utiliser l'cloud-initoutil
pour écrire un fichier de configuration. Voici un fichier cloud-init recommandé pour utiliser le collecteur conçu par Google :
Nous vous recommandons de créer un réseau Docker bridge pour faciliter la communication entre le conteneur du collecteur et tout autre conteneur du système qui enverra des données de télémétrie. Pour créer le réseau, exécutez la commande suivante :
docker network create -d bridge otel
Exécutez le conteneur du collecteur à l'aide de la commande suivante :
La commande précédente effectue les opérations suivantes :
- Exécute le conteneur du collecteur en arrière-plan.
- Associe le conteneur du collecteur au réseau de pont créé précédemment otel. D'autres conteneurs peuvent être connectés au pont pour envoyer des données de télémétrie.
- Monte votre fichier de configuration sur le conteneur afin que le fichier soit accessible pour configurer le collecteur.
Configurer le collecteur
Nous vous fournissons une configuration du collecteur OpenTelemetry à utiliser avec le collecteur conçu par Google. Cette configuration est conçue pour fournir de grands volumes de métriques, de journaux et de traces OTLP. Elle est également conçue pour éviter les problèmes d'ingestion courants. Vous pouvez ajouter des éléments à la configuration, mais nous vous recommandons vivement de ne pas en supprimer.
Cette section décrit la configuration fournie, les composants clés tels que les exportateurs, les processeurs, les récepteurs et d'autres composants disponibles.
Configuration du collecteur fournie
Vous trouverez la configuration du collecteur dans legoogle-built-opentelemetry-collector
répertoire du
opentelemetry-operations-collector dépôt :
Exportateurs
La configuration du collecteur inclut les exportateurs suivants :
googlecloudexportateur, pour les journaux et les traces. Cet exportateur est configuré avec un nom de journal par défaut.googlemanagedprometheusexportateur, pour les métriques. Cet exportateur ne nécessite aucune configuration, mais des options de configuration sont disponibles. Pour en savoir plus sur les options de configuration de l'exportateurgooglemanagedprometheus, consultez Premiers pas avec le collecteur OpenTelemetry dans la documentation Google Cloud Managed Service pour Prometheus.
Processeurs
La configuration du collecteur inclut les processeurs suivants :
batch: configuré pour regrouper des requêtes de télémétrie avec le Google Cloud nombre maximal d' entrées par requête, ou avec l' Google Cloud intervalle minimal de cinq secondes (selon ce qui survient en premier).memory_limiter: limite l'utilisation de la mémoire du collecteur pour éviter les plantages dus à la mémoire saturée en supprimant des points de données lorsque la limite est dépassée.resourcedetection: détecte automatiquement les étiquettes de ressources, telles queproject_id. Google Cloud
Récepteurs
La configuration du collecteur n'inclut que le
otlp récepteur.
Pour en savoir plus sur l'instrumentation de vos applications afin d'envoyer des traces OTLP
et des métriques au point de terminaison OTLP du collecteur, consultez
Choisir une approche
d'instrumentation.
Composants disponibles
Le collecteur OpenTelemetry conçu par Google contient les composants dont la plupart des utilisateurs auront besoin pour bénéficier d'une expérience enrichie dans Google Cloud Observability. Pour obtenir la liste complète des
composants disponibles, consultez
Composants
dans le opentelemetry-operations-collector dépôt.
Pour demander des modifications ou des ajouts aux composants disponibles,
ouvrez une demande de fonctionnalité.
dans le opentelemetry-operations-collector dépôt.
Générer des données de télémétrie
Vous pouvez tester votre configuration à l'aide de l'outil Open Source
telemetrygen.
Le projet OpenTelemetry fournit un conteneur dans le registre de conteneurs GitHub.
Avant d'exécuter les commandes suivantes, remplacez les espaces réservés suivants, si vous avez modifié les valeurs par défaut utilisées dans les commandes Docker de la section Déployer le collecteur :
- otel : nom que vous avez spécifié lors de la création du réseau Docker
bridge. - opentelemetry-collector : nom que vous avez spécifié lors de l'exécution du conteneur.
Générer des journaux
Pour générer des journaux à l'aide de l'outil telemetrygen, exécutez la commande suivante :
docker run \ --net=otel \ ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:v0.105.0 \ logs --otlp-insecure --rate=3 --duration=5m \ --otlp-endpoint=opentelemetry-collector:4317
Générer des métriques
Pour générer des métriques à l'aide de l'outil telemetrygen, exécutez la commande suivante :
docker run \ --net=otel \ ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:v0.105.0 \ metrics --otlp-insecure --rate=0.1 --duration=5m \ --otlp-endpoint=opentelemetry-collector:4317
Générer des traces
Pour générer des traces à l'aide de l'outil telemetrygen, exécutez la commande suivante :
docker run \ --net=otel \ ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:v0.105.0 \ traces --otlp-insecure --rate=3 --duration=5m \ --otlp-endpoint=opentelemetry-collector:4317
Après quelques minutes, la télémétrie générée par l'application commence à circuler à travers le collecteur vers la Google Cloud console pour chaque signal.
Afficher les données de télémétrie
Le collecteur OpenTelemetry conçu par Google envoie les métriques, les journaux et les traces de vos applications instrumentées à Google Cloud Observability. Le collecteur envoie également des métriques d'auto-observabilité. Dans les sections suivantes, nous allons voir comment afficher ces données de télémétrie.
Afficher vos métriques
Le collecteur OpenTelemetry conçu par Google collecte des métriques Prometheus que vous pouvez afficher à l'aide de l'explorateur de métriques. Les métriques collectées dépendent de l'instrumentation de l'application, bien que le collecteur conçu par Google écrive également certaines métriques propres.
Pour afficher les métriques collectées par le collecteur OpenTelemetry conçu par Google, procédez comme suit :-
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.
- Dans la barre d'outils de la console Google Cloud , sélectionnez votre projet Google Cloud . Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
- Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez
Prometheus Targetdans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :- Dans le menu Ressources actives, sélectionnez Cible Prometheus.
- Pour sélectionner une métrique, utilisez les menus Catégories de métriques actives et Métriques actives.
Les métriques collectées par le collecteur OpenTelemetry conçu par Google sont précédées du préfixe
prometheus.googleapis.com. - Cliquez sur Appliquer.
Pour ajouter des filtres qui suppriment des séries temporelles des résultats de la requête, utilisez l' élément Filtre.
- Configurez le mode d'affichage des données.
Lorsque les mesures d'une métrique sont cumulatives, l'explorateur de métriques normalise automatiquement les données mesurées par période d'alignement, ce qui permet d'afficher un taux dans le graphique. Pour en savoir plus, consultez la section Genres, types et conversions.
Lorsque des valeurs entières ou doubles sont mesurées, par exemple avec les métriques
counter, l'explorateur de métriques additionne automatiquement toutes les séries temporelles. Pour modifier ce comportement, définissez le premier menu de l'entrée Agrégation sur Aucun.Pour plus d'informations sur la configuration d'un graphique, consultez la page Sélectionner des métriques lors de l'utilisation de l'explorateur de métriques.
Afficher vos traces
Pour afficher vos données de trace, procédez comme suit:
-
Dans la Google Cloud console, accédez à la
page Explorateur Trace :
Vous pouvez également accéder à cette page à l'aide de la barre de recherche.
- Dans la barre d'outils de la Google Cloud console, sélectionnez votre Google Cloud projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion.
- Dans la section du tableau de la page, sélectionnez une ligne.
Dans le graphique de Gantt du panneau Détails des traces , sélectionnez un délai.
Un panneau contenant des informations sur la requête suivie s'affiche. Ces informations incluent la méthode, le code d'état, le nombre d'octets et le user-agent de l'appelant.
Pour afficher les journaux associés à cette trace, sélectionnez l'onglet Logs & Events (Journaux et événements).
Cet onglet affiche les journaux individuels. Pour afficher les détails de l'entrée de journal, développez-la. Vous pouvez également cliquer sur Afficher les journaux et afficher le journal à l'aide de l'explorateur de journaux.
Pour en savoir plus sur l'utilisation de l'explorateur Cloud Trace, consultez la page Rechercher et explorer des traces.
Afficher les journaux
L'explorateur de journaux vous permet d'inspecter vos journaux et d'afficher les traces associées, lorsqu'elles existent.
-
Dans la Google Cloud console, accédez à la Explorateur de journaux :
Accéder à l'explorateur de journaux
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.
Recherchez une entrée de journal dans votre application instrumentée. Pour afficher les détails, développez l'entrée de journal.
Cliquez sur
Traces sur une entrée de journal contenant un message de trace, puis sélectionnez Afficher les détails des traces.Un panneau Trace details (Informations sur la trace) s'ouvre et affiche la trace sélectionnée.
Pour en savoir plus sur l'utilisation de l'explorateur de journaux, consultez la page Afficher les journaux à l'aide de l'explorateur de journaux.
Observer et déboguer le collecteur
Le collecteur OpenTelemetry conçu par Google fournit automatiquement des métriques d'auto-observabilité pour vous aider à surveiller ses performances et à garantir la disponibilité continue du pipeline d'ingestion OTLP.
Pour surveiller le collecteur, installez l'exemple de tableau de bord pour le collecteur. Ce tableau de bord fournit des insights brefs sur plusieurs métriques du collecteur, y compris le temps d'activité, l'utilisation de la mémoire et les appels d'API vers Google Cloud Observability.
Pour installer le tableau de bord, procédez comme suit :
-
Dans la Google Cloud console, accédez à la page Tableaux de bord :
Accéder à la page Tableaux de bord
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Cliquez sur Modèles de tableau de bord.
- Recherchez le tableau de bord Collecteur OpenTelemetry.
- (Facultatif) Pour prévisualiser le tableau de bord, sélectionnez-le.
Cliquez sur playlist_add Ajouter le tableau de bord à votre liste et puis remplissez la boîte de dialogue.
La boîte de dialogue vous permet de sélectionner le nom du tableau de bord et d'y ajouter des étiquettes.
Pour en savoir plus sur l'installation des tableaux de bord, consultez Installer un modèle de tableau de bord.