Présentation du collecteur OpenTelemetry conçu par Google

Le collecteur OpenTelemetry conçu par Google est la version Open Source du collecteur OpenTelemetry de Google, conçu à partir de composants en amont à l'aide d'une chaîne d'approvisionnement sécurisée sur l'infrastructure Google. OpenTelemetry, qui fait partie de la Cloud Native Computing Foundation, fournit des API, des bibliothèques et des SDK Open Source pour collecter des traces, des métriques et des journaux OTLP (OpenTelemetry Protocol) distribués pour la surveillance des applications.

Le collecteur OpenTelemetry conçu par 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 , ce qui vous permet de mettre en corrélation les données de 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 permettant d'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.

À partir de la version 0.134.0, le collecteur OpenTelemetry conçu par Google est conforme à la norme Supply-chain Levels for Software Artifacts (SLSA) niveau 3. Le code du collecteur et ses dépendances sont analysés en continu pour détecter d'éventuelles failles. Pour en savoir plus, consultez Fonctionnalités de sécurité.

Utiliser le collecteur OpenTelemetry conçu par 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 (GKE)), Container-Optimized OS, des conteneurs autonomes ou directement dans un environnement hôte (y compris Compute Engine). Les documents suivants expliquent comment configurer et déployer le collecteur conçu par Google dans les environnements suivants :

Ces instructions peuvent également être utilisées pour configurer le collecteur OpenTelemetry Open Source en amont afin d'exporter des données vers Google Cloud Observability.

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

Pour en savoir plus sur l'utilisation de l'instrumentation OpenTelemetry pour générer des traces, des métriques et des journaux à partir de vos applications, consultez les documents suivants :

Description du collecteur OpenTelemetry conçu par Google

Le collecteur OpenTelemetry conçu par Google est créé à l'aide de composants et d'outils OpenTelemetry en amont, tout en étant entièrement créé et récupéré à partir de l'infrastructure de compilation, de test et de publication de Google (Artifact Registry). Le collecteur conçu par Google est compatible avec un build 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 et de créer manuellement votre propre collecteur. En utilisant le collecteur conçu par Google, vous pouvez :

  • Collectez des métadonnées pour les ressources Google Cloud afin de pouvoir mettre en corrélation 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 de manière native avec OpenTelemetry.
  • Simplifiez l'intégration grâce aux configurations recommandées et à l'autosurveillance basée sur les bonnes pratiques, y compris les vérifications d'état et le 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 gère une liste de bonnes pratiques pour configurer le collecteur OpenTelemetry et pour faire évoluer le collecteur. Cette section fournit des recommandations supplémentaires.

Utiliser l'exportateur gRPC OTLP

Utilisez l'exportateur OTLP gRPC pour vous connecter à l'API Telemetry (OTLP), telemetry.googleapis.com. L'API Telemetry accepte toutes les données de télémétrie (journaux, métriques et traces) au format OTLP, qui est indépendant du fournisseur. L'envoi de données de télémétrie à l'API Telemetry signifie que les données provenant du collecteur OpenTelemetry sont conservées avec une fidélité maximale dans l'espace de stockage Google Cloud .

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

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

  • Détection précoce des problèmes : les vérifications d'état facilitent la surveillance proactive de l'état du collecteur, ce qui permet de détecter les problèmes potentiels avant qu'ils n'affectent les données de télémétrie. Cette mesure préventive permet de garantir la fiabilité du pipeline d'observabilité.
  • Dépannage amélioré : en cas de problème, les vérifications d'é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 simplifie 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 d'état est compatible avec les vérifications d'activité et d'aptitude Kubernetes. Pour en savoir plus sur la configuration de 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 d'é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 l'outil de traitement par lot

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

  • Minimise les connexions sortantes : en regroupant les transmissions de données en 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 réduire les coûts réseau globaux.
  • Compression des données améliorée : le traitement par lot permet une compression des données plus efficace, 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 offre la flexibilité nécessaire pour 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 un intervalle de temps spécifique. Cette flexibilité vous permet d'ajuster la stratégie de traitement par lot en fonction des caractéristiques spécifiques de vos données et des exigences particulières de votre application.

Utiliser le fournisseur googlesecretmanager

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

  • Sécurité renforcée : vos fichiers de configuration ne contiennent pas d'informations sensibles telles que 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 en savoir plus sur l'utilisation de ce fournisseur, consultez Gérer les secrets dans la configuration du collecteur.

Notes de version

Le collecteur OpenTelemetry conçu par Google est versionné en synchronisation avec le collecteur OpenTelemetry en amont. La version actuelle est v0.163.1. 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.163.1. Pour chaque nouvelle version, les modifications les plus pertinentes pour les utilisateurs de Google Cloud sont incluses sur cette page.

Fonctionnalités de sécurité

À partir de la version 0.134.0, le collecteur OpenTelemetry conçu par Google propose des images Docker conformes à la norme Supply-chain Levels for Software Artifacts (SLSA) niveau 3 et offrant les fonctionnalités de sécurité suivantes :

  • Compilation sécurisée : le pipeline CI/CD du collecteur OpenTelemetry créé par Google génère des attestations pour chaque version d'image de conteneur. Ces attestations incluent une attestation du résumé de la vérification (VSA), qui est jointe en tant qu'élément à chaque version sur GitHub.

  • Analyse et correction des failles : le collecteur OpenTelemetry conçu par Google est continuellement analysé pour détecter les failles, et nous nous efforçons de respecter les SLO FedRamp pour la correction des failles. Nous accordons la priorité à la sécurité des utilisateurs en recompilant régulièrement le collecteur avec des dépendances de packages mises à jour. Notre pipeline CI/CD est conçu pour intégrer rapidement les correctifs de sécurité critiques et les mises à jour des dépendances. Cet engagement minimise l'exposition aux failles connues, ce qui vous permet de bénéficier d'un produit constamment sécurisé et à jour.

  • Versions validées et sécurisées : nous appliquons des règles internes à Google concernant l'intégrité du code pour nous assurer que seuls les artefacts répondant à nos critères de sécurité stricts sont mis en production. Ce processus vous garantit de toujours recevoir des logiciels qui ont passé avec succès des contrôles de sécurité internes approfondis.

Assistance

Pour tous les problèmes côté client liés au collecteur OpenTelemetry créé par Google, y compris les demandes de fonctionnalités, les rapports de bugs et les questions d'ordre général, 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 traités de la manière la plus optimale possible.

  • 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 le Google Cloud
    • Authentification dans Google Cloud
    • Demandes d'ajout de nouveaux composants OpenTelemetry
  • 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 par l'OpenTelemetry Collector conçu par Google des services et des API Google Cloud Observability, tels que les erreurs de serveur ou les quotas, contactez Cloud Customer Care.

Tarifs

Le déploiement et l'utilisation du collecteur OpenTelemetry conçu par Google sont sans frais.

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 Tarifs de Google Cloud Observability.

Essayer la démo OpenTelemetry

Cette section explique comment déployer et exécuter la démo OpenTelemetry pourGoogle Cloud avec le collecteur OpenTelemetry conçu par 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émonstration OpenTelemetry nécessite un cluster Kubernetes sur lequel la fédération d'identité de charge de travail est configurée. Pour en savoir plus sur la configuration de la fédération d'identité de charge de travail pour votre cluster, consultez Utiliser la fédération d'identité de charge de travail pour GKE.

Mettre à jour la démonstration pour utiliser le collecteur conçu par Google

Par défaut, la démo OpenTelemetry utilise le collecteur OpenTelemetry en amont. Pour utiliser le collecteur OpenTelemetry conçu par 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, bien que la version puisse ê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.163.1, 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.163.1"
    

Déployer la démo

Déployez la démonstration 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émonstration 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émonstration à l'adresse localhost:8080.

Afficher la télémétrie

La démonstration OpenTelemetry envoie des métriques, des traces et des journaux à Google Cloud à l'aide du collecteur OpenTelemetry conçu par Google. Pour en savoir plus sur les données de télémétrie spécifiques envoyées par la démonstration, consultez Afficher les données de télémétrie dans la documentation de la démonstration.

Afficher vos métriques

Le collecteur OpenTelemetry conçu par 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 internes.

Pour afficher les métriques collectées par le collecteur OpenTelemetry conçu par 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 conçu par Google ont le préfixe prometheus.googleapis.com.
    3. Cliquez sur Appliquer.
  4. Pour ajouter des filtres qui suppriment des séries temporelles des résultats de la requête, utilisez l'élément Filtre.

  5. 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 Sélectionner des métriques lorsque vous utilisez 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 ou le projet de gestion App Hub.
  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 pageExplorateur 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 de 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 Afficher les journaux à l'aide de l'explorateur de journaux.