本文档介绍了如何将轨迹与 Cloud Logging 日志条目相关联。通过使用 LogEntry
结构中的跟踪字段(spanId
、trace
和 traceSampled
),您可以关联日志和轨迹,以便更好地进行分布式问题排查。
手动将日志条目与轨迹或跨度相关联
如果您使用 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 Viewer 和 Project Viewer Identity and Access Management (IAM) 角色提供。
要查看虚拟机实例日志,您必须拥有项目的 compute.instances.get
权限。此权限由 Compute Engine Network Viewer 和 Project Viewer IAM 角色提供。