Présentation du collecteur OpenTelemetry conçu par Google

Cet ensemble de documents décrit le collecteur OpenTelemetry conçu par Google et explique comment le déployer pour collecter les traces, les métriques et les journaux OpenTelemetry Protocol (OTLP) à partir d'applications instrumentées, puis exporter ces données vers Google Cloud Observability et d'autres backends.

Le collecteur OpenTelemetry conçu par Google est une version Open Source prête pour la production du collecteur OpenTelemetry en amont, qui est conçu avec des composants du collecteur OpenTelemetry en amont. OpenTelemetry, qui fait partie de la Cloud Native Computing Foundation, fournit des API, des bibliothèques et des SDK Open Source permettant de collecter des traces, des métriques et des journaux distribués pour la surveillance des applications.

Le collecteur OpenTelemetry intégré à Google vous permet d'envoyer des traces, des métriques et des journaux OTLP corrélés à Google Cloud Observability et à d'autres backends à partir d'applications instrumentées à l'aide des SDK OpenTelemetry. Le collecteur capture également les métadonnées des ressources Google Cloud . Vous pouvez ainsi corréler les données sur les performances des applications avec les données de télémétrie de l'infrastructure. L'utilisation du collecteur conçu par Google avec Google Cloud Observability fournit des insights pour améliorer les performances de vos applications et de votre infrastructure. Pour en savoir plus sur le collecteur, consultez Description du collecteur OpenTelemetry conçu par Google.

Utiliser le collecteur OpenTelemetry intégré à Google

Vous pouvez utiliser le collecteur conçu par Google pour collecter des données de télémétrie à partir de vos applications exécutées sur Kubernetes (y compris Google Kubernetes Engine), Container-Optimized OS ou des conteneurs autonomes. Les documents de cette section expliquent comment configurer et déployer le collecteur Google dans les environnements suivants :

Si vous n'avez pas d'application prête à utiliser le collecteur, vous pouvez déployer la démo OpenTelemetry avec le collecteur conçu par Google. Pour en savoir plus, consultez Essayer la démo OpenTelemetry.

Pour savoir comment utiliser l'instrumentation OpenTelemetry afin de générer des traces, des métriques et des journaux à partir de vos applications, consultez les documents suivants :

Description du collecteur OpenTelemetry intégré à Google

Le collecteur OpenTelemetry intégré à Google est conçu à l'aide de composants et d'outils OpenTelemetry en amont, tout en étant créé et récupéré entièrement à partir de l'infrastructure de compilation, de test et de publication de Google (Artifact Registry). Le collecteur conçu par Google est compatible avec une version du collecteur OpenTelemetry provenant du dépôt en amont. Il est également hébergé en tant qu'image Docker pour un déploiement flexible sur n'importe quel système basé sur des conteneurs, y compris Kubernetes et GKE.

Le collecteur conçu par Google fournit un package organisé par Google avec les composants dont la plupart des utilisateurs auront besoin pour une expérience d'observabilité riche sur Google Cloud. Vous n'avez pas besoin de sélectionner des composants ni de créer votre propre collecteur manuellement. Le collecteur conçu par Google vous permet d'effectuer les actions suivantes :

  • Collectez des métadonnées pour les ressources Google Cloud afin de pouvoir corréler les données sur les performances des applications avec les données de télémétrie de l'infrastructure.
  • Acheminez les données de télémétrie vers Google Cloud Observability ou le backend de votre choix à l'aide d'exportateurs, y compris les backends compatibles en mode natif avec OpenTelemetry.
  • Simplifiez l'intégration grâce à des configurations recommandées et à une autosurveillance des bonnes pratiques, y compris des vérifications de l'état et du traitement par lot.
  • Utilisez l'image Docker hébergée pour un déploiement flexible sur n'importe quel système basé sur des conteneurs, y compris Kubernetes et GKE.

Bonnes pratiques

OpenTelemetry tient à jour une liste des bonnes pratiques pour configurer le collecteur OpenTelemetry et pour mettre à l'échelle le collecteur. Cette section fournit quelques recommandations supplémentaires.

Utiliser l'extension de vérification de l'état

L'extension de vérification de l'état permet d'utiliser une URL HTTP qui peut être testée pour vérifier l'état du collecteur OpenTelemetry. L'utilisation de cette extension présente les avantages suivants :

  • Détection précoce des problèmes : les vérifications de l'état facilitent la surveillance proactive de l'état du collecteur, ce qui permet de détecter les problèmes potentiels avant qu'ils n'aient un impact négatif sur les données de télémétrie. Cette mesure préventive permet d'assurer la fiabilité du pipeline d'observabilité.
  • Dépannage amélioré : en cas de problème, les vérifications de l'état fournissent des informations précieuses sur l'état actuel du collecteur. Ces informations simplifient le processus de diagnostic et de résolution, ce qui réduit les temps d'arrêt et rationalise les efforts de dépannage.
  • Fiabilité améliorée : la surveillance continue de l'état du collecteur garantit un fonctionnement cohérent et évite les défaillances inattendues. Cette mesure proactive améliore la fiabilité globale du système d'observabilité et réduit le risque de perte de données ou de lacunes dans les données de télémétrie.

Sur Kubernetes et GKE, l'extension de vérification de l'état est compatible avec les vérifications d'activité et d'aptitude Kubernetes. Pour savoir comment configurer ces vérifications, consultez Bonnes pratiques Kubernetes : configurer des vérifications de l'état avec des vérifications d'aptitude et d'activité.

Sur Cloud Run, une seule extension de vérification de l'état peut servir de point de terminaison pour les vérifications de démarrage et d'activité dans la configuration de votre service Cloud Run.

Utiliser le processeur de lot

Le processeur de lot collecte les traces, les métriques ou les journaux, et les regroupe en lots pour la transmission. L'utilisation du processeur de traitement par lot offre les avantages suivants :

  • Minimisation des connexions sortantes : en regroupant les transmissions de données dans des lots, le collecteur OpenTelemetry réduit considérablement le nombre de connexions sortantes. Cette approche consolidée réduit l'utilisation des quotas et peut potentiellement diminuer les coûts réseau globaux.
  • Compression des données améliorée : le traitement par lot permet une compression plus efficace des données, ce qui réduit la taille globale des données transmises.
  • Flexibilité de la stratégie de traitement par lot : la prise en charge du traitement par lot basé sur la taille et sur le temps permet d'optimiser différents scénarios. Le traitement par lot basé sur la taille garantit que les lots atteignent une certaine taille avant d'être envoyés, tandis que le traitement par lot basé sur le temps envoie les lots après l'écoulement d'un intervalle de temps spécifique. Cette flexibilité vous permet d'affiner la stratégie de traitement par lot pour l'adapter aux caractéristiques spécifiques de vos données et aux exigences particulières de votre application.

Utiliser le fournisseur googlesecretmanager

Le fournisseur googlesecretmanager vous permet de stocker les informations sensibles nécessaires aux fichiers de configuration dans Secret Manager, un service conçu spécifiquement pour stocker, accéder et gérer les données sensibles de manière sécurisée. L'utilisation du fournisseur googlesecretmanager offre les avantages suivants :

  • Sécurité renforcée : vos fichiers de configuration ne contiennent pas d'informations sensibles, comme des mots de passe.
  • Réduction du risque d'exposition : Secret Manager récupère les secrets lors de l'initialisation du collecteur, ce qui empêche l'enregistrement accidentel de secrets en texte brut dans les journaux.

Pour savoir comment utiliser ce fournisseur, consultez Gérer les secrets dans la configuration du collecteur.

Notes de version

La version du collecteur OpenTelemetry intégré à Google est synchronisée avec celle du collecteur OpenTelemetry en amont. La version actuelle est v0.129.0. L'image Docker correspondante, stockée dans Artifact Registry, est us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.0. Pour chaque nouvelle version, les modifications les plus pertinentes pour les utilisateurs de Google Cloud sont incluses sur cette page.

Assistance

Pour tous les problèmes liés au client OpenTelemetry Collector conçu par Google, y compris les demandes de fonctionnalités, les rapports de bugs et les questions générales, ouvrez un problème dans le dépôt GitHub approprié. Ces dépôts sont surveillés par Google, et les problèmes sont triés et résolus au mieux.

  • Dépôt de packages du collecteur OpenTelemetry conçu par Google, pour les problèmes liés aux éléments suivants :

    • Préparation
    • Déploiement sur Google Cloud
    • Authentification dans Google Cloud
    • Demandes d'ajout de nouveaux composants OpenTelemetry
  • Le dépôt OpenTelemetry Collector Contrib pour les problèmes liés aux éléments suivants :

    • Composants OpenTelemetry spécifiques à Google, par exemple :
      • googlecloudexporter
      • googlemanagedprometheusexporter
      • googleclientauthextension
      • resourcedetectionprocessor
    • Composants OpenTelemetry non spécifiques à Google gérés par la communauté en amont

Pour les problèmes liés à l'utilisation des services et des API Google Cloud Observability par Google-Built OpenTelemetry Collector, comme les erreurs de serveur ou les quotas, contactez l'assistance Google Cloud.

Tarifs

Le déploiement et l'utilisation de Google-Built OpenTelemetry Collector sont gratuits.

Lorsque vous envoyez des données de télémétrie à Google Cloud, vous êtes facturé en fonction du volume d'ingestion. Pour en savoir plus sur les coûts associés à l'ingestion de traces, de journaux et de métriques Google Cloud Managed Service pour Prometheus, consultez la page Tarifs de Google Cloud Observability.

Essayer la démo OpenTelemetry

Cette section explique comment déployer et exécuter la démonstration OpenTelemetry pourGoogle Cloud avec le collecteur OpenTelemetry intégré à Google.

Cette rubrique est facultative. Si vous êtes prêt à intégrer le collecteur conçu par Google dans vos propres déploiements, consultez les documents suivants :

Avant de commencer

La démo OpenTelemetry nécessite un cluster Kubernetes sur lequel la fédération d'identité de charge de travail est configurée. Pour savoir comment configurer la fédération d'identité de charge de travail pour la démo OpenTelemetry, consultez Conditions requises pour Workload Identity.

Mettre à jour la démo pour utiliser le collecteur Google

Par défaut, la démo OpenTelemetry utilise le collecteur OpenTelemetry en amont. Pour utiliser le collecteur OpenTelemetry intégré à Google, procédez comme suit :

  1. Clonez le dépôt de démonstration OpenTelemetry :

    git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
    
  2. Accédez au répertoire kubernetes.

    cd kubernetes
    
  3. Modifiez le fichier opentelemetry-demo.yaml pour remplacer la ligne de l'image du collecteur à utiliser. La ligne ressemble à ce qui suit, même si la version peut être différente :

    image: "otel/opentelemetry-collector-contrib:0.108.0"
    

    Remplacez la valeur du champ image: par us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.0, de sorte que la ligne ressemble à ce qui suit, puis enregistrez le fichier :

    image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.0"
    

Déployer la démo

Déployez la démo en appliquant le fichier opentelemetry-demo.yaml mis à jour :

kubectl apply --namespace otel-demo -f opentelemetry-demo.yaml

Se connecter à la démo

Une fois la configuration mise à jour appliquée, vous pouvez transférer les données vers un port local. Par exemple, pour vous connecter à la démo sur localhost:8080, exécutez la commande suivante :

kubectl port-forward --n otel-demo svc/opentelemetry-demo-frontendproxy 8080:8080

Vous pouvez ensuite utiliser votre navigateur pour vous connecter à la démo sur localhost:8080.

Afficher la télémétrie

La démo OpenTelemetry envoie des métriques, des traces et des journaux à Google Cloud à l'aide du collecteur OpenTelemetry intégré à Google. Pour en savoir plus sur la télémétrie spécifique envoyée par la démo, consultez Afficher la télémétrie dans la documentation de la démo.

Afficher vos métriques

Le collecteur OpenTelemetry intégré à Google collecte les 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 intégré à Google, procédez comme suit :
  1. Dans la console Google Cloud , accédez à la 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.

  2. 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.
  3. Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez Prometheus Target dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :
    1. Dans le menu Ressources actives, sélectionnez Cible Prometheus.
    2. 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 intégré à Google ont le préfixe prometheus.googleapis.com.
    3. Cliquez sur Appliquer.
  4. 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:

  1. Dans la console Google Cloud , accédez à la page Explorateur Trace :

    Accéder à Explorateur Trace

    Vous pouvez également accéder à cette page à l'aide de la barre de recherche.

  2. 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.
  3. Dans la section du tableau de la page, sélectionnez une ligne.
  4. Dans le graphique de Gantt du panneau Détails des traces, sélectionnez un segment.

    Un panneau contenant des informations sur la requête tracée s'affiche. Ces informations incluent la méthode, le code d'état, le nombre d'octets et le user-agent de l'appelant.

  5. 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.

  1. Dans la console Google Cloud , accédez à la page 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.

  2. Recherchez une entrée de journal dans votre application instrumentée. Pour afficher les détails, développez l'entrée de journal.

  3. 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.