将日志条目与轨迹相关联

本文档介绍了如何将日志条目与跟踪记录相关联。您可以通过在日志条目中设置字段来执行关联。 通过使用 LogEntry 结构中的跟踪记录字段(spanIdtracetraceSampled),您可以 关联日志和跟踪记录,以便更好地进行分布式问题排查。

手动将日志条目与跟踪记录或 span 相关联

如果您使用 Cloud Logging API 写入日志数据,或者写入 结构化日志数据, 则可以将日志条目与跟踪记录或 span 相关联。日志条目还可以记录是否对跟踪记录进行了采样。如需了解 Ops Agent 如何将结构化日志数据转换为 LogEntry中的字段,请参阅结构化载荷中的特殊字段

如需将日志条目与跟踪记录相关联,请在 LogEntry 对象中设置 trace 字段 :

  • 首选格式:TRACE_ID
  • 旧版格式:projects/PROJECT_ID/traces/TRACE_ID

在上面的表达式中,PROJECT_ID 是您的 Google Cloud 项目 ID, TRACE_ID 是跟踪记录标识符。

如需在使用 Cloud Logging API 时将日志条目与 span 相关联, 请将 spanId 字段在 LogEntry 对象 中设置为 span ID 的 16 字符十六进制编码。 例如,如需将日志条目与 ID 为 74 的 span 相关联,请将 span ID 设置为 000000000000004a

如需表明您使用的是跟踪记录采样,并且在写入日志条目时对跟踪记录进行了采样 以进行存储,请设置 traceSampled 字段在 的 LogEntry 对象。使用跟踪记录采样时,系统可能会在未捕获跟踪记录本身时创建日志条目。

自动将日志条目与跟踪记录或 span 相关联

使用 Cloud Logging 客户端 库时,在某些情况下,日志条目中的跟踪记录字段 可以自动设置。手动设置的值优先于自动设置的值。

例如,如果您使用的是 OpenTelemetry,并且正在从活跃的 OpenTelemetry span 进行日志记录,则日志条目中的跟踪记录字段将从 OpenTelemetry 上下文填充。

或者,在某些情况下,当存在 HTTP 请求时, 可以从 HTTP 请求中的 W3C traceparent 字段或 X-Cloud-Trace-Context 值设置跟踪记录字段。

如需详细了解如何在日志条目中自动填充跟踪记录字段,请参阅以下特定语言的客户端库文档:

查看日志

您可以在瀑布图或 Logs Explorer 中查看跟踪记录的日志条目。使用日志浏览器时,它将自动限制为跟踪记录的时间戳范围。如果没有要显示的日志条目,则日志浏览器会显示消息 No entries found matching current filter

Trace 详情窗格中,如需查看跟踪记录的日志条目,请执行以下操作之一:

  • 如需在瀑布图旁边显示轨迹日志条目,请转到瀑布图,然后点击显示日志。如果未显示显示日志,则表示没有可用的日志条目。

  • 如需在 Logs Explorer 中查看日志条目,请点击详细信息 部分中日志 标签旁边的查看 。如果您有 Cloud Load Balancing 跟踪记录,请点击虚拟机日志 标签旁边的查看

如需详细了解如何在 Cloud Logging 中查看日志条目, 请参阅Logs Explorer

日志查看权限

要查看任何日志条目,您必须拥有项目的 logging.logEntries.list 权限。此权限由 Logs ViewerProject Viewer Identity and Access Management (IAM) 角色提供。

要查看虚拟机实例日志,您必须拥有项目的 compute.instances.get 权限。此权限由 Compute Engine Network ViewerProject Viewer IAM 角色提供。