Associer des entrées de journal à des traces

Ce document explique comment associer une entrée de journal à une trace. Pour effectuer l'association, vous devez définir un champ dans l'entrée de journal. En utilisant les champs de trace dans la structure LogEntry (spanId, trace et traceSampled), vous pouvez corréler les journaux et les traces pour mieux résoudre les problèmes distribués.

Associer manuellement une entrée de journal à une trace ou une étendue

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 portée. 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 journaux structurées en champs dans un LogEntry, consultez 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 :

  • Format préféré : TRACE_ID
  • Ancien format : projects/PROJECT_ID/traces/TRACE_ID

Dans les expressions précédentes, PROJECT_ID correspond à l'ID de votre projet Google Cloud et TRACE_ID à l'identifiant de trace.

Pour associer une entrée de journal à une portée lorsque vous utilisez l'API Cloud Logging, définissez le champ spanId dans l'objet LogEntry sur l'encodage hexadécimal de 16 caractères de l'ID de la portée. 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 une étendue

Lorsque vous utilisez les bibliothèques clientes Cloud Logging, les champs de trace d'une entrée de journal peuvent parfois être définis automatiquement. Les valeurs définies manuellement prévalent sur celles définies automatiquement.

Par exemple, si vous utilisez OpenTelemetry et que vous enregistrez des journaux à partir d'un span 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 W3C traceparent ou de la valeur X-Cloud-Trace-Context dans la requête HTTP.

Pour en savoir plus sur le remplissage automatique des champs de trace dans les entrées de journal, consultez la documentation des bibliothèques clientes spécifiques à chaque langage :

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 page 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.