Associer des entrées de journal à des traces

La corrélation des entrées de journal Cloud Logging avec les traces et les spans Cloud Trace vous permet d'afficher les journaux à côté des graphiques en cascade des traces ou dans l'explorateur de journaux lorsque vous résolvez les problèmes liés aux requêtes distribuées. Pour associer des journaux à des traces, vous pouvez définir manuellement les champs trace, spanId et traceSampled dans un objet LogEntry, ou utiliser les bibliothèques clientes Logging pour renseigner automatiquement ces champs à partir du contexte OpenTelemetry ou des en-têtes de requête HTTP.

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 à un segment. 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 à un segment lorsque vous utilisez l'API Logging, définissez le champ spanId dans l'objet LogEntry sur l'encodage hexadécimal à 16 caractères de l'ID du segment. Par exemple, pour associer une entrée de journal à un segment ayant l'ID 74, définissez l'ID de segment 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 alors que la trace elle-même n'est pas capturée.

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

Les bibliothèques clientes de journalisation peuvent définir automatiquement les champs de trace dans certains cas. 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 segment 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 de la bibliothèque cliente spécifique à la langue suivante :

Afficher les journaux

Vous pouvez afficher l'entrée de journal d'une trace avec le graphique en cascade ou dans l'explorateur de journaux. Lorsque vous utilisez l'explorateur de journaux, la plage de temps est automatiquement limitée à la plage de codes temporels de la trace. Si aucune entrée de journal n'est à afficher, l'Explorateur de journaux affiche le message No entries found matching current filter.

Pour afficher l'entrée de journal de la trace dans le volet Détails de la trace, procédez comme suit :

  • 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 l'explorateur de journaux, cliquez sur Afficher à côté du libellé Journal dans la section Détails. 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 Logging, consultez 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.