Dépannage

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

Aucune donnée dans l'interface Trace

Si vous ne parvenez pas à afficher les traces dans votre projet Google Cloud alors que vous attendez des traces des données, procédez comme suit:

  1. Activez l'API Cloud Trace

    Activer l'API

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

    Accédez à la page API et Services

    Après avoir trouvé la ligne intitulée API Cloud Trace, essayez ce qui suit:

    • Si la colonne intitulée Demandes ne contient aucune information numérique, aucune donnée de trace n'est envoyée à votre projet Google Cloud.

      Pour résoudre ce problème, vérifiez vos applications et 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:

      • Si les écritures échouent, accordez compte de service que consiste à fournir les identifiants d'authentification 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 Rôles IAM pour Cloud Trace

      • Si les lectures échouent, assurez-vous que vos ressources IAM sur le projet Google Cloud inclut les autorisations du rôle Utilisateur Cloud Trace (roles/cloutrace.user). Pour une liste d'autorisations pour ce rôle, consultez la page 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 les traces. mise à jour de votre application pour utiliser OpenTelemetry, vous ne voyez plus Données Cloud Trace.

Certaines bibliothèques clientes Google pour Go s'intègrent OpenCensus, vous devez utiliser un pont OpenCensus. Pour en savoir plus sur le problème résolu par le pont, consultez OpenCensus des passerelles

Pour en savoir plus sur la mise à jour de la bibliothèque cliente Google pour Go, consultez Problème 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 la classe API Cloud Trace, mais les données de trace ne sont pas collectées.

Essayez d'exécuter les commandes suivantes :

  • Si vous ne voyez aucune donnée sur la page Explorateur de traces du console Google Cloud, puis suivez les étapes de la section intitulée Aucune donnée dans l'interface Trace.

  • Si l'application n'est pas déployée sur Google Cloud ou utilise un compte de service pour fournir des identifiants, puis assurez-vous que compte de service s'est vu attribuer le rôle 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.

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

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

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

    À moins que votre application n'échantillonne toujours chaque segment, il n'est généralement pas possible de forcer le traçage d'une requête de bout en bout car chaque composant d'une requête de bout en bout décision relative à l'échantillonnage. Cependant, vous pouvez influencer en ajoutant à l'en-tête de trace une option sampled. avec cet indicateur défini sur true. Ce paramètre sert à indiquer les composants enfants. pour échantillonner la requête. Pour en savoir plus sur les en-têtes de trace, consultez Protocoles de propagation contextuelle.

Message d'ID de segment manquant dans la trace

Votre trace contient un "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 segment échantillonné contient une référence à un autre segment un segment qui n'a pas été reçu. La référence non résolue peut se produire pour pour les raisons suivantes:

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

Lorsque vous affichez une trace incomplète, Cloud Trace affiche la message "Missing span ID" (ID de segment manquant) dans le volet "Détails de la trace".

Si le message "ID de segment manquant" s'affiche systématiquement, essayez le suivantes:

  • Pour les composants que vous gérez, assurez-vous qu'ils respectent et propager l'option sampled de l'en-tête lorsque cette est présent. Ce paramètre indique aux composants enfants comment échantillonner le requête. Pour en savoir plus sur les en-têtes de trace, consultez Protocoles de propagation contextuelle.

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

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