Dépannage

Cette page contient des informations de dépannage pour Trace.

Aucune donnée dans l'interface Trace

Si vous ne pouvez afficher aucune trace dans votre projet Google Cloud alors que vous prévoyez des données de trace, procédez comme suit:

  1. Activez l'API requise.

    Activer l'API

  2. Dans la console Google Cloud, accédez à la page API et services:

    Accéder à API et services

    Après avoir trouvé la ligne intitulée API Cloud Trace, procédez comme suit:

    • Si la colonne intitulée Requests (Requêtes) ne contient aucune information numérique, cela signifie qu'aucune donnée de trace n'est envoyée à votre projet Google Cloud.

      Pour résoudre ce problème, vérifiez vos applications et vos proxys pour vous assurer qu'ils sont configurés pour envoyer les traces au bon projet.

    • Sélectionnez API Cloud Trace, cliquez sur l'onglet Métriques, puis recherchez le graphique intitulé Erreurs par méthode API:

      • En cas d'échec des écritures, accordez au compte de service qui fournit les identifiants d'authentification le rôle d'agent Cloud Trace (roles/cloudtrace.agent). Ce rôle inclut l'autorisation cloudtrace.traces.patch, qui permet aux applications d'écrire des données de segments dans un projet Google Cloud.

        Pour en savoir plus, consultez la page Rôles IAM de Cloud Trace.

      • Si les lectures échouent, assurez-vous que votre rôle IAM sur le projet Google Cloud inclut les autorisations du rôle Utilisateur Cloud Trace (roles/cloutrace.user). Pour obtenir la liste des autorisations pour ce rôle, consultez la section Rôles IAM de Cloud Trace.

Aucune donnée de trace après la mise à jour de l'application Go pour utiliser OpenTelemetry

Votre application s'appuie sur la bibliothèque cliente pour capturer des traces. Après l'avoir mise à jour pour utiliser OpenTelemetry, les données Cloud Trace ne s'affichent plus.

Étant donné que certaines bibliothèques clientes Google pour Go sont intégrées à OpenCensus, vous devez utiliser un pont OpenCensus. Pour en savoir plus sur le problème résolu par le pont, consultez la section OpenCensus Bridge.

Pour plus d'informations sur la mise à jour de la bibliothèque cliente Google pour Go, consultez le problème n° 4237.

Aucune donnée de trace pour l'application déployée

Vous avez déployé une application qui envoie des données à votre projet Google Cloud à l'aide de l'API Cloud Trace. Cependant, les données de trace ne sont pas collectées.

Essayez d'exécuter les commandes suivantes :

  • Si aucune donnée ne s'affiche sur la page Explorateur de traces de la console Google Cloud, suivez la procédure décrite dans la section Aucune donnée dans l'interface Trace.

  • Si l'application n'est pas déployée sur Google Cloud ou si elle utilise un compte de service pour fournir des identifiants d'authentification, assurez-vous que le rôle d'agent Cloud Trace (roles/cloudtrace.agent) a été attribué au compte de service.

    Ce rôle inclut l'autorisation cloudtrace.traces.patch, qui permet aux applications d'écrire des données de segments dans un projet Google Cloud.

  • Si l'application repose sur OpenTelemetry, procédez comme suit:

    • Pour le service racine, essayez de mettre à jour vos variables d'environnement de sorte qu'OpenTelemetry utilise l'échantillonneur traceidratio avec un taux d'échantillonnage de 0.5:

      export OTEL_TRACES_SAMPLER="traceidratio"
      export OTEL_TRACES_SAMPLER_ARG="0.5"
      
    • Pour tous les autres services, ne définissez pas la variable d'environnement OTEL_TRACES_SAMPLER pour utiliser l'échantillonneur par défaut, à savoir parentbased_always_on. Le paramètre par défaut signifie que la décision d'échantillonnage d'un segment est héritée de son segment parent, le cas échéant. Si aucun segment parent n'existe, il est échantillonné.

    À moins que votre application n'échantillonne toujours pas tous les segments, il n'est généralement pas possible de forcer le traçage de bout en bout d'une requête, car chaque composant d'une requête de bout en bout prend sa propre décision d'échantillonnage. Toutefois, vous pouvez influencer la décision en ajoutant à l'en-tête de trace une option sampled, avec cette option définie sur true. Ce paramètre donne aux composants enfants une indication pour échantillonner la requête. Pour en savoir plus sur les en-têtes de trace, consultez la page Protocoles pour la propagation du contexte.

Message d'ID de segment manquant dans la trace

Votre trace contient le message "ID de segment manquant".

Dans les systèmes de traçage distribués, des traces incomplètes sont attendues. Une trace est incomplète lorsqu'un délai échantillonné contient une référence à un autre délai non reçu. La référence non résolue peut se produire pour les raisons suivantes:

  • Le segment référencé n'a pas été échantillonné.
  • Le délai référencé a été échantillonné, mais n'a pas encore été reçu par Cloud Trace, ou bien il a été reçu, mais n'a pas encore été stocké.

Lorsque vous consultez une trace incomplète, Cloud Trace affiche le message "ID de délai manquant" dans le volet des détails de la trace.

Si le message "ID de segment manquant" s'affiche systématiquement, procédez comme suit:

  • Pour les composants que vous gérez, assurez-vous qu'ils respectent et propagent l'indicateur sampled de l'en-tête lorsque ce champ est présent. Ce paramètre donne aux composants enfants une indication pour échantillonner la requête. Pour en savoir plus sur les en-têtes de trace, consultez la page Protocoles pour la propagation du contexte.

    Les services Google Cloud respectent généralement cet indice. Cependant, ils limitent également la vitesse à laquelle ils écrivent des données de trace.

  • Si vous utilisez Anthos Service Mesh, assurez-vous de suivre les instructions pour propager le contexte de trace pour ces configurations. Pour obtenir des conseils sur Anthos Service Mesh, consultez la section Propagation du contexte de trace.