Résoudre les problèmes

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. Dans le panneau de navigation de la console Google Cloud, sélectionnez API et services, cliquez sur Activer les API et les services, puis activez l'API Cloud Trace:

    Accéder aux paramètres de l'API Cloud Trace

  2. Si API activée s'affiche, l'API est déjà activée. Sinon, cliquez sur le bouton Activer.

  3. Dans la barre d'outils, cliquez sur le menu de navigation , puis sélectionnez API et services. Si la ligne de l'API Cloud Trace ne contient aucune valeur numérique pour la colonne Requêtes, la colonne Erreurs ou pour d'autres colonnes, aucune requête de trace n'atteint votre projet Google Cloud. Vérifiez vos applications et vos proxys pour vous assurer qu'ils sont configurés pour envoyer les traces au bon projet.

  4. Pour afficher les détails de l'utilisation de l'API, cliquez sur API Cloud Trace, puis sélectionnez l'onglet Métriques.

    Pour affiner la source des erreurs, utilisez les filtres Identifiants et Méthodes et examinez l'impact de vos sélections sur le graphique Erreurs par méthode API :

    • Si toutes les écritures échouent, assurez-vous que votre compte de service a accès au rôle Agent Cloud Trace. Ce rôle inclut l'autorisation cloudtrace.traces.patch. Pour plus d'informations, consultez la section Rôles IAM Cloud Trace.

    • Si les lectures échouent, assurez-vous que vous avez accès au rôle Utilisateur Cloud Trace pour ce projet Google Cloud. Pour obtenir la liste complète des autorisations associées à ce rôle, consultez la page Rôles IAM 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é votre application et l'avez instrumentée pour collecter les données de trace à l'aide d'OpenTelemetry. Toutefois, les données de trace ne sont pas collectées.

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.