Intégration à Cloud Logging

Ce document explique comment associer une trace à une entrée de journal Cloud Logging. En utilisant les champs de traçage de la structure LogEntry (spanId, trace et traceSampled), vous pouvez corréler les journaux et les traces pour améliorer la résolution des problèmes distribués.

Associer manuellement une entrée de journal à une trace ou à un délai

Si vous utilisez l'API Cloud Logging pour écrire des données de journal ou si vous écrivez des données de journal structurées, vous pouvez associer une entrée de journal à une trace ou à une étendue. L'entrée de journal peut également indiquer si la trace a été échantillonnée. Pour savoir comment l'agent Ops convertit les données de journal structurées en champs dans un LogEntry, consultez la section Champs spéciaux dans les charges utiles structurées.

Pour associer une entrée de journal à une trace, définissez le champ trace dans l'objet LogEntry. Le champ trace doit être défini sur une chaîne au format suivant:

   projects/PROJECT_ID/traces/TRACE_ID

PROJECT_ID est votre ID de projet Google Cloud et TRACE_ID l'identifiant de trace.

Pour associer une entrée de journal à une étendue lorsque vous utilisez l'API Cloud Logging, définissez le champ spanId dans l'objet LogEntry sur l'encodage hexadécimal à 16 caractères de l'ID de l'étendue. Par exemple, pour associer une entrée de journal à un délai dont l'ID est 74, définissez l'ID de délai sur 000000000000004a.

Pour indiquer que vous utilisez l'échantillonnage de trace et que la trace a été échantillonnée pour le stockage lors de l'écriture de l'entrée de journal, définissez le champ traceSampled dans l'objet LogEntry. Lorsque vous utilisez l'échantillonnage de trace, il est possible qu'une entrée de journal soit créée lorsque la trace elle-même n'est pas capturée.

Associer automatiquement une entrée de journal à une trace ou à un délai

Lorsque vous utilisez les bibliothèques clientes Cloud Logging, les champs de trace d'une entrée de journal peuvent être définis automatiquement dans certains cas. Les valeurs définies manuellement ont la priorité sur les valeurs définies automatiquement.

Par exemple, si vous utilisez OpenTelemetry et que vous journalisez à partir d'un délai OpenTelemetry actif, les champs de trace de l'entrée de journal sont renseignés à partir du contexte OpenTelemetry.

Dans certains cas, lorsqu'une requête HTTP est présente, les champs de trace peuvent être définis à partir du champ traceparent W3C ou de la valeur X-Cloud-Trace-Context dans la requête HTTP.

Pour en savoir plus sur la population automatique des champs de trace dans les entrées de journal, consultez la documentation de la bibliothèque cliente spécifique à la langue suivante:

Afficher les journaux

Vous pouvez afficher l'entrée de journal d'une trace à côté du graphique en cascade ou dans la visionneuse de journaux. Lorsque vous utilisez la visionneuse de journaux, elle est automatiquement limitée à la plage d'horodatages de la trace. Si aucune entrée de journal n'est disponible, la visionneuse de journaux affiche le message No entries found matching current filter.

Dans le volet Détails de la trace, effectuez l'une des opérations suivantes pour afficher l'entrée de journal de la trace :

  • Pour afficher les entrées du journal trace à côté du graphique en cascade, accédez au graphique et cliquez sur Afficher les journaux. Lorsque l'option Afficher les journaux n'apparaît pas, aucune entrée de journal n'est disponible.

  • Pour afficher l'entrée de journal dans la visionneuse de journaux, cliquez sur Afficher à côté du libellé Journal dans la section Détails. Notez que lorsque vous disposez d'une trace Cloud Load Balancing, cliquez sur Afficher à côté du libellé Journal de VM.

Pour en savoir plus sur l'affichage des entrées de journal dans Cloud Logging, consultez la section Utiliser l'explorateur de journaux.

Autorisations d'affichage des journaux

Pour afficher les entrées de journal, vous devez disposer de l'autorisation logging.logEntries.list dans votre projet. Cette autorisation est accordée par les rôles Visionneuse de journaux et Lecteur de projets de la gestion de l'authentification et des accès (IAM).

Pour afficher les journaux d'instance de VM, vous devez disposer de l'autorisation compute.instances.get dans votre projet. Cette autorisation est accordée par les rôles IAM de lecteur de réseau Compute Engine et de lecteur de projet.