与 Cloud Logging 集成

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

手动将日志条目与轨迹或跨度相关联

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

如需将日志条目与轨迹相关联,请设置 LogEntry 对象中的 trace 字段。trace 字段必须设置为字符串,格式如下:

   projects/PROJECT_ID/traces/TRACE_ID

其中,PROJECT_ID 是您的 Google Cloud 项目 ID,TRACE_ID 是跟踪记录标识符

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

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

自动将日志条目与轨迹或 Span 相关联

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

例如,如果您使用的是 OpenTelemetry,并且通过活跃的 OpenTelemetry span 进行日志记录,则日志条目中的轨迹字段会从 OpenTelemetry 上下文中填充。

或者,在某些情况下,如果存在 HTTP 请求,则可以通过 HTTP 请求中的 W3C traceparent 字段或 X-Cloud-Trace-Context 值设置轨迹字段。

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

查看日志

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

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

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

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

如需详细了解如何在 Cloud Logging 中查看日志条目,请参阅使用日志浏览器

日志查看权限

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

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