首页 > 解决方案 > protoPayload 与 jsonPayload 的日志记录

问题描述

我的应用程序的日志条目导致 jsonPayload,而 gae 请求日志条目使用 protoPayload。就像在 protoPayload 中一样,我在日志中添加了一个 requestId,它显示在 jsonPayload 中。但是,当使用“显示来自同一请求的条目”操作的日志查看器时,我看不到我的日志条目,因为过滤器使用 protoPayload.requestId="xyz"。我尝试对 jsonPayload.requestId="xyz" 使用 or 条件,但这没有帮助。理想情况下,我什至不想手动编辑子句,因为每次都这样做会很痛苦。似乎根据以下文档,每种类型的有效负载中的 requestId 都不会映射到相同的底层 bigquery 字段。

https://cloud.google.com/logging/docs/export/bigquery

日志条目上还有一个“跟踪”字段,所有相关日志都相同。但是,没有要搜索的称为跟踪的字段。进行文本搜索确实会返回所有条目。虽然这可行,但 UX 还是很糟糕,因为它需要首先深入到请求日志条目,复制跟踪值,然后进行查询。

那么,是否有任何其他选项可以轻松地将请求日志条目与该请求的其余应用程序日志条目联系起来?

标签: google-app-enginegoogle-bigquerygoogle-cloud-stackdriver

解决方案


在有效的日志条目中有一个名为“trace”的字段。我想我对 protoPayload 中的“traceId”感到困惑。请注意,要让“trace”字段与 json 有效负载一起显示,字段名称应为“logging.googleapis.com/trace”


推荐阅读