将日志条目与轨迹相关联

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

手动将日志条目与跟踪记录或 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 Viewer 和 Project Viewer Identity and Access Management (IAM) 角色提供。

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