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 :
- Dans la console Google Cloud , accédez à la page API et services, puis activez l'API Cloud Monitoring :
-
Dans la console Google Cloud , accédez à la page 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.
Sur la page IAM, procédez comme suit :
Sélectionnez Inclure les attributions de rôles fournies par Google.
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.
Attribuez les rôles suivants au compte de service Monitoring :
- Agent de service Monitoring (
roles/monitoring.notificationServiceAgent) sur votre projet. - Lecteur de données BigQuery (
roles/bigquery.dataViewer) sur votre ensemble de données BigQuery associé.
- Agent 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'instructionFROMse 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 close dans la fenêtre.
Le message précédent s'affiche lorsque vous ne disposez d'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 :
-
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
globalouus.
-
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 :
-
Activez les API Cloud Trace et Telemetry.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.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 ses limites sont plus généreuses que celles de l'API Cloud Trace.
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 :
Accédez à la page API et services activés, recherchez les lignes correspondant aux API Cloud Trace et Telemetry, puis examinez la colonne Erreurs.
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 :
- API Cloud Trace : Rôle d'agent Cloud Trace (
roles/cloudtrace.agent) - API Telemetry : Cloud Telemetry Trace Writer (
roles/telemetry.tracesWriter).
- API Cloud Trace : Rôle d'agent Cloud Trace (
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 :
-
Dans la console Google Cloud , accédez à la page
Explorateur Trace :
Vous pouvez également accéder à cette page à l'aide de la barre de recherche.
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.
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.
Échec de la recherche d'une trace spécifique
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 :
Vérifiez que le code temporel associé à l'ID de trace se trouve dans la période de conservation.
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 Trace et sélectionnez un span à 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 les données d'étendue pour la trace.
Votre rôle IAM sur un projet Google Cloud qui stocke les données de segment pour 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 :
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.
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.