Aucune donnée dans l'interface Trace
Si vous ne parvenez pas à afficher les traces dans votre projet Google Cloud alors que vous pensez qu'elles sont présentes, procédez comme suit :
-
Enable the Cloud Trace API.
Dans la console Google Cloud, accédez à la page API et services :
Une fois que vous avez trouvé la ligne intitulée API Cloud Trace, procédez comme 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 vos proxys pour vous assurer qu'ils sont configurés pour envoyer les traces au bon projet.
Sélectionnez API Cloud Trace, l'onglet Métriques, puis le graphique intitulé Erreurs par méthode API :
Si les écritures échouent, attribuez 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'autorisationcloudtrace.traces.patch
, qui permet aux applications d'écrire des données span 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 l'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 aucune donnée ne s'affiche sur la page Explorateur Trace de la console Google Cloud, suivez les étapes décrites dans la section 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 de0.5
:export OTEL_TRACES_SAMPLER="traceidratio" export OTEL_TRACES_SAMPLER_ARG="0.5"
Pour tous les autres services, laissez la variable d'environnement
OTEL_TRACES_SAMPLER
non définie pour utiliser l'échantillonneur par défaut, à savoirparentbased_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 une étendue parente n'existe pas, l'étendue est échantillonnée.
Sauf si votre application échantillonne toujours chaque étendue, 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 prend sa propre décision d'échantillonnage. Cependant, vous pouvez influencer en ajoutant à l'en-tête de trace une option
sampled
. avec cet indicateur défini surtrue
. 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 span manquant dans la trace
Votre trace contient un message "ID de span manquant".
Dans les systèmes de traçage distribué, des traces incomplètes sont attendues. Une trace est incomplète lorsqu'une étendue échantillonnée contient une référence à une autre étendue qui n'a pas été reçue. 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 le message "ID de span manquant" dans le volet "Détails de la trace".
Si le message "ID de span manquant" s'affiche de manière récurrente, 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 est un indice pour les composants enfants d'échantillonner la requête. Pour en savoir plus sur les en-têtes de trace, consultez la section Protocoles de propagation du contexte.Les services Google Cloud respectent généralement cette indication. Toutefois, ils limitent également la fréquence à 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.