Dépannage

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

Problèmes connus

Cette section répertorie les problèmes connus :

  • Les spans écrits dans votre projet Google Cloud à l'aide de l'API Telemetry ne sont pas accessibles à l'API Cloud Trace. Par exemple, si vous essayez de lister ces traces, la commande échoue et renvoie une erreur 404 Not Found.

Résoudre les problèmes liés à Observability Analytics

Cette section explique comment résoudre les échecs que vous pouvez rencontrer lorsque vous utilisez Observability Analytics pour interroger vos données de trace.

Vous ne pouvez pas enregistrer votre règle d'alerte en raison d'une erreur de validation.

Vous essayez d'enregistrer une règle d'alerte qui surveille vos données de trace et vous recevez une erreur semblable à la suivante :

The following error occurred when validating your SQL Alert: Error authenticating service account `service-12345@gcp-sa-monitoring-notification.iam.gserviceaccount.com`. BigQuery returned an error.

Ce message d'erreur indique que le compte de service de surveillance ne dispose pas des autorisations requises ou n'existe pas. Ce compte est créé automatiquement par le système lorsque certaines actions initiées par l'utilisateur se produisent. Toutefois, si l'API Cloud Monitoring est désactivée, le système ne peut pas accéder au compte de service.

Pour résoudre ce problème, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page API et services, puis activez l'API Cloud Monitoring :

    Accéder à API et services

  2. Dans la console Google Cloud , accédez à la page IAM :

    Accéder à IAM

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

  3. Sur la page IAM, procédez comme suit :

    1. Sélectionnez Inclure les attributions de rôles fournies par Google.

    2. Si le compte de service Monitoring ne figure pas dans la liste, créez une règle d'alerte basée sur SQL et essayez de l'enregistrer.

      Lorsque vous enregistrez la règle, le système crée le compte de service de surveillance. L'action d'enregistrement échoue, car ce compte de service ne dispose pas des rôles IAM requis.

    3. Attribuez les rôles suivants au compte de service Monitoring :

Message d'erreur indiquant qu'une vue n'existe pas

Vous saisissez une requête SQL dans le volet de requête de la page Observability Analytics, mais l'analyseur SQL affiche l'erreur suivante :

projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID/views/OBS_VIEW_ID does not exist

L'erreur précédente est signalée lorsque la vue spécifiée dans l'instruction FROM est introuvable.

Pour résoudre cette erreur, vérifiez que votre vue utilise la syntaxe appropriée :

  • Vérifiez que le nom complet de la vue respecte la syntaxe requise par le schéma de dénomination d'Observability Analytics. Pour trouver la syntaxe requise pour une vue, affichez sa requête par défaut.

  • Si l'ID de projet, l'emplacement, l'ID de bucket, l'ID d'ensemble de données ou l'ID de vue Google Cloud contiennent des points, (.), vérifiez que le champ est placé entre des accents graves simples, (`).

    Par exemple, si l'ID de votre projet Google Cloud est example.com:bluebird, l'instruction FROM se présente comme suit :

    FROM `example.com:bluebird`.`us`.`_Trace`.`Spans`.`_AllSpans`
    

Le message "Premiers pas avec Observability Analytics" s'affiche

Vous ouvrez la page Observability Analytics (Analytics d'observabilité), et une fenêtre s'affiche avec un message semblable à celui-ci :

Get started with Observability Analytics

Pour utiliser l'analyse de l'observabilité, cliquez sur Fermer  dans la fenêtre.

Le message précédent s'affiche lorsque vous n'avez aucun bucket de journaux mis à niveau pour utiliser Observability Analytics. Toutefois, vos données de trace ne sont pas stockées dans un bucket de journaux.

Échec de la jointure de plusieurs vues

Vous écrivez une requête qui joint plusieurs vues, mais elle est marquée comme non valide.

Toutes les vues ne peuvent pas être jointes.

Pour joindre des vues, les restrictions suivantes s'appliquent :

  1. Les emplacements des vues satisfont l'une des conditions suivantes :

    • Toutes les vues ont le même emplacement.
    • Toutes les vues se trouvent dans l'emplacement global ou us.
  2. Lorsque les ressources de stockage utilisent des clés de chiffrement gérées par le client (CMEK), l'une des conditions suivantes doit être remplie :

    • Les ressources de stockage qui utilisent CMEK utilisent la même clé Cloud KMS.
    • Les ressources de stockage qui utilisent CMEK ont un ancêtre commun, et cet ancêtre spécifie une clé Cloud KMS par défaut qui se trouve au même emplacement que les ressources de stockage.

    Lorsqu'une ou plusieurs ressources de stockage utilisent le CMEK, le système chiffre les données temporaires générées par la jointure avec la clé Cloud KMS commune ou la clé Cloud KMS par défaut de l'ancêtre.

Par exemple, supposons que vous ayez deux vues qui se trouvent au même emplacement. Vous pouvez ensuite joindre ces vues si l'une des conditions suivantes est remplie :

  • Les ressources de stockage n'utilisent pas CMEK.
  • Une ressource de stockage utilise CMEK, mais pas l'autre.
  • Les deux ressources de stockage utilisent le chiffrement CMEK et la même clé Cloud KMS.
  • Les deux ressources de stockage utilisent CMEK, mais avec des clés différentes. Toutefois, les ressources partagent un ancêtre qui spécifie une clé Cloud KMS par défaut se trouvant au même emplacement que les ressources de stockage.

    Par exemple, supposons que la hiérarchie des ressources pour un bucket de journaux et un bucket d'observabilité inclue la même organisation. Vous pouvez joindre des vues sur ces buckets lorsque, pour cette organisation, vous avez configuré les paramètres de ressources par défaut pour Cloud Logging et pour les buckets d'observabilité avec la même clé Cloud KMS par défaut pour l'emplacement de stockage.

Échec de la création d'un ensemble de données BigQuery associé en raison d'une erreur d'autorisation

Vous essayez de créer un ensemble de données BigQuery associé, mais l'opération échoue et une erreur semblable à celle-ci s'affiche :

ERROR: (gcloud.beta.observability.buckets.datasets.links.create) {
  "code": 7,
  "message": "The caller does not have permission"
}

Pour résoudre ce problème, procédez comme suit :

  • Assurez-vous que les rôles IAM requis vous ont été attribués. Pour obtenir la liste de ces rôles, consultez Créer un lien vers un ensemble de données.

  • Consultez les règles de votre organisation pour déterminer si des contraintes s'appliquent aux ensembles de données BigQuery. Supposons que vous créez une contrainte personnalisée qui exige que les ensembles de données BigQuery se trouvent dans un emplacement spécifique. Dans ce cas, vous ne pouvez créer un ensemble de données BigQuery associé que sur un ensemble de données d'observabilité qui se trouve à cet emplacement spécifique.

Aucune donnée sur la page Explorateur Trace

Vous disposez d'une application qui envoie des données de trace à votre projet Google Cloud . Toutefois, lorsque vous ouvrez la page Explorateur Trace, aucune donnée n'est affichée.

Plusieurs raisons peuvent expliquer pourquoi vous ne pouvez pas afficher les données de trace :

  • Vous ne disposez pas des autorisations nécessaires pour afficher les données.
  • Les étendues de trace n'ont pas été envoyées à votre projet.
  • Votre application ne dispose pas des autorisations nécessaires pour écrire des données de trace.
  • Vos spans de trace ne sont pas stockés.

Les sous-sections suivantes expliquent comment résoudre les problèmes liés aux scénarios d'échec listés.

Vérifiez que vous êtes autorisé à afficher les données de trace.

Pour afficher les données de trace, assurez-vous de disposer du rôle Utilisateur Cloud Trace (roles/cloudtrace.user).

Vérifier que les étendues de trace sont envoyées à votre projet

Pour vérifier que les spans sont envoyés à votre projet, procédez comme suit :

  1. Activez les API Cloud Trace et Telemetry.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer les API

    Les deux API peuvent ingérer des étendues de trace. Toutefois, l'API Telemetry est recommandée, car elle est compatible avec l'écosystème OpenTelemetry et parce qu'elle offre des limites plus généreuses que l'API Cloud Trace.

  2. Accédez à la page API et services activés, puis recherchez les lignes correspondant aux API Cloud Trace et Telemetry.

    Si le nombre de requêtes pour ces deux API est nul, cela signifie qu'aucune donnée de trace n'est envoyée à votre projet.

Vérifiez que votre application dispose des autorisations requises pour écrire des spans de trace.

Pour déterminer si votre application est autorisée à écrire des données de trace dans votre projet, procédez comme suit :

  1. Accédez à la page API et services activés, recherchez les lignes correspondant aux API Cloud Trace et Telemetry, puis examinez la colonne Erreurs.

  2. Si vous voyez une valeur non nulle dans la colonne Erreurs pour l'une ou l'autre des API, cela signifie qu'il y a des erreurs de lecture ou d'écriture des données de trace via cette API. Pour identifier le type d'erreur, sélectionnez l'API, puis l'onglet Métriques et affichez Erreurs par méthode API :

    Si les écritures échouent, accordez les rôles suivants au compte de service qui fournit les identifiants :

Vérifier que vos données de trace sont stockées

Les spans de trace sont stockés dans un bucket d'observabilité nommé _Trace. Ce bucket est provisionné automatiquement lorsque votre projet Google Cloud reçoit des spans de trace. Toutefois, il existe plusieurs scénarios dans lesquels le provisionnement échoue.

Pour déterminer si un bucket d'observabilité existe pour vos données de trace, vous pouvez lister vos buckets d'observabilité ou ouvrir la page Explorateur Trace. Par exemple, vous pouvez effectuer les opérations suivantes :

  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. Si vous voyez une bannière semblable à celle ci-dessous, cela signifie que le stockage de vos données de trace n'est pas provisionné.

    Trace storage is not initialized for this project. Enable trace storage to begin collecting trace data.
    

    Pour provisionner un bucket d'observabilité pour vos données de trace, accédez à la bannière et cliquez sur Activer.

    Lorsque vous cliquez sur Activer, cette action entraîne l'envoi d'un segment à votre projet. Lorsque le système reçoit le span, il émet la commande permettant de créer un bucket d'observabilité nommé _Trace. Cette opération peut prendre plusieurs minutes.

    Lorsque l'initialisation réussit, une bannière de notification s'affiche et Cloud Trace ingère toutes les données de trace envoyées au cours de la dernière heure. Ces données ont été stockées dans une mémoire tampon temporaire. L'affichage des données dans l'explorateur de traces peut prendre quelques minutes. Si vous ne voyez aucune donnée, actualisez la fenêtre.

  3. Si la commande d'activation échoue, le message suivant s'affiche :

    Initializing trace storage has failed for an unexpected reason. Please file a support ticket for assistance.
    

    Pour résoudre ce problème, contactez l'assistance Google Cloud en cliquant sur Envoyer une demande.

La recherche d'une trace spécifique échoue

Vous saisissez un ID de trace sur la page Explorateur Trace. La trace est introuvable et un message semblable à celui-ci s'affiche :

The select trace with ID abcde does not exist or is older than 30 days and has been deleted per our retention policy.

Pour résoudre ce problème, procédez comme suit :

  1. Vérifiez que le code temporel associé à l'ID de trace se trouve dans la période de conservation.

  2. Identifiez le projet Google Cloud qui stocke la trace et vérifiez que le sélecteur de ressources de la console Google Cloud sélectionne ce projet. Par défaut, la page Explorateur Trace n'a accès qu'aux données de trace stockées dans le projet sélectionné.

Données anciennes manquantes sur la page Explorateur Trace

Vous utilisez la page Explorateur Trace et vous pouvez afficher les données récentes, mais lorsque vous définissez le sélecteur de période sur 30 jours ou sur une valeur supérieure, les données plus anciennes ne s'affichent pas.

La page Explorateur de traces n'affiche pas les données pour les périodes supérieures à la période de conservation des données de Cloud Trace, qui est de 30 jours.

Si le sélecteur de période est défini sur 30 jours ou moins, les données manquantes indiquent que la base de données interrogée par les requêtes de la page Explorateur de traces a été créée plus récemment que votre paramètre de période. Par exemple, si vous définissez cette valeur sur 20 jours et que vous ne pouvez voir que les 10 derniers jours de données, cela signifie que la base de données a été créée il y a 10 jours. De plus, cette base de données ne contient que les traces qui ont été envoyées à votre projet Google Cloud après sa création.

Une trace incomplète s'affiche

Vous ouvrez la page Explorateur de traces et sélectionnez un segment à afficher. Le panneau volant Détails affiche la trace, mais celle-ci n'est pas complète. Certaines étendues ne sont pas affichées.

Il peut manquer des étendues pour les raisons suivantes :

  • La page Explorateur Trace ne recherche pas tous les projets Google Cloud qui stockent des données de span pour la trace.

  • Votre rôle IAM sur un projet Google Cloud qui stocke les données de segment de la trace ne contient pas les autorisations nécessaires pour afficher les données de trace.

  • Un problème d'instrumentation est survenu. Par exemple, seules certaines portées d'une trace ont été envoyées à votre projet Google Cloud .

Pour résoudre ces problèmes, procédez comme suit :

  1. Sur la page Explorateur Trace, assurez-vous de définir l'élément Champ d'application sur un champ d'application de trace qui liste les projets stockant les spans de la trace sélectionnée.

    S'il n'existe pas de champ d'application de trace incluant les projets que vous avez identifiés à l'étape précédente, créez ou modifiez un champ d'application de trace existant. Pour en savoir plus, consultez Créer et gérer des champs d'application de trace.

  2. Vérifiez que vous disposez du rôle Utilisateur Cloud Trace (roles/cloudtrace.user) dans les projets qui stockent les données de portée.

Vous ne disposez pas des autorisations nécessaires pour afficher les données de trace

Vous consultez la page Explorateur Trace et la notification suivante s'affiche :

You don't have the required permissions to view trace data for one or more projects listed in the trace scope.

Pour résoudre ce problème, procédez comme suit dans la barre d'outils :

  1. Développez l'élément Champ d'application et identifiez le champ d'application de la trace sélectionnée.
  2. Dans le menu déroulant Affiner le champ d'application, sélectionnez Gérer les champs d'application.
  3. Localisez le champ d'application de la trace que vous avez identifié lors de la première étape, puis développez les détails pour afficher la liste des projets Google Cloud .
  4. Pour chaque projet Google Cloud dans le champ d'application de la trace, vérifiez que vous disposez du rôle Utilisateur Cloud Trace (roles/cloudtrace.user). Si vous ne disposez pas de ce rôle pour un projet, demandez à un administrateur ou à un propriétaire de projet de vous l'attribuer.

Les requêtes interrégionales ne sont pas acceptées.

Vous ouvrez la page Trace Explorer et un message semblable à celui-ci s'affiche :

Error loading chart data. Cross-regional queries are not supported. The selected scope comprises buckets residing in multiple locations: list of locations.

Le message d'erreur indique que la page Explorateur Trace doit envoyer une requête pour des données stockées à différents emplacements.

Pour résoudre ce problème, effectuez l'une des opérations suivantes :

  • Limitez les données de trace à celles stockées par le projet sélectionné :

    • Accédez à la barre d'outils de la page Explorateur Trace et développez le menu Champ d'application.
    • Dans le menu déroulant Affiner le champ d'application, sélectionnez Projet actuel.
  • Sélectionnez un champ d'application de trace qui liste les projets dont les données sont stockées au même emplacement. Pour ce faire, utilisez les options du menu Champ d'application.

  • Supprimez du champ d'application de trace sélectionné les projets dont les données sont stockées dans un emplacement différent de celui de votre projet sélectionné :

    • Accédez à la barre d'outils de la page Explorateur Trace et développez le menu Champ d'application.
    • Dans le menu déroulant Affiner le champ d'application, sélectionnez Gérer les champs d'application.
    • Sur la page Champs d'application de Trace, vous pouvez modifier n'importe quel champ d'application de Trace.

    Pour trouver l'emplacement de stockage de vos données de trace, exécutez la commande List observability buckets. Dans le paramètre de chemin d'accès, spécifiez votre projet et, pour LOCATION, définissez le champ sur un tiret, (-), qui sert de caractère générique.

Message d'ID de portée manquant dans la trace

Votre trace contient un message "Missing span ID" (ID de span manquant).

Dans les systèmes de traçage distribué, les traces incomplètes sont normales. Une trace est incomplète lorsqu'un segment échantillonné contient une référence à un autre segment qui n'a pas été reçu. La référence non résolue peut se produire pour les raisons suivantes :

  • La portée référencée n'a pas été échantillonnée.
  • La portée référencée a été échantillonnée, mais n'a pas encore été reçue par Cloud Trace, ou elle a été reçue, mais pas stockée.

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

Si le message "ID de span manquant" s'affiche régulièrement, essayez ce qui suit :

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

    Les servicesGoogle Cloud respectent généralement cette indication. Toutefois, ils limitent également la fréquence à laquelle ils écrivent les données de trace.

  • Si vous utilisez Cloud Service Mesh, vérifiez que vous suivez les conseils pour propager le contexte de trace pour ces configurations. Pour obtenir des conseils sur Cloud Service Mesh, consultez la page Propagation du contexte de trace.

Impossible de corréler les données de journaux et de trace

Vous effectuez l'une des actions suivantes :

  • Vous consultez une étendue de trace et vous souhaitez afficher les entrées de journal associées. Toutefois, aucune donnée de journal n'est listée ou, lorsque vous ouvrez la page Explorateur de journaux, aucune entrée de journal n'est affichée.

  • Vous consultez une entrée de journal et vous souhaitez afficher les spans de trace associés. Toutefois, lorsque vous utilisez les options de l'entrée de journal pour ouvrir la page Explorateur Trace, aucune donnée de trace ne s'affiche.

Pour résoudre ces échecs, configurez le champ d'application de l'observabilité. Ce champ d'application spécifie les champs d'application de trace et de journal à utiliser lorsque les pages d'explorateur correspondantes s'ouvrent. Pour en savoir plus, consultez Configurer des champs d'application de l'observabilité pour les requêtes multiprojets.

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. Après avoir mis à jour votre application pour utiliser OpenTelemetry, vous ne voyez plus les données Cloud Trace.

Étant donné que certaines bibliothèques clientes Cloud 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 Pont OpenCensus.

Pour en savoir plus sur la mise à jour des bibliothèques clientes Cloud pour Go, consultez le problème 4237.