将日志条目与轨迹相关联

将 Cloud Logging 日志条目与 Cloud Trace 跟踪记录和 span 相关联,可让您在排查分布式请求问题时,在跟踪记录瀑布图旁边或 Logs Explorer 中查看日志。如需将日志与轨迹相关联,您可以手动设置 LogEntry 对象中的 trace、spanId 和 traceSampled 字段,也可以使用 Logging 客户端库从 OpenTelemetry 上下文或 HTTP 请求标头自动填充这些字段。

手动将日志条目与轨迹或 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 是轨迹标识符。

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

如需表明您正在使用轨迹抽样,并且在写入日志条目时对轨迹进行了抽样以进行存储,请在 LogEntry 对象中设置 traceSampled 字段。使用轨迹抽样时,即使未捕获轨迹本身,也可能会创建日志条目。

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

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

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

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

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

查看日志

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

如需在轨迹详情窗格中查看轨迹的日志条目,请执行以下操作之一:

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

  • 如需在 Logs Explorer 中查看日志条目,请点击详细信息部分中日志标签旁边的查看。如果您有 Cloud Load Balancing 轨迹,请点击标签 VM 日志旁边的查看。

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

日志查看权限

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

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