【问题标题】:protoPayload vs jsonPayload in loggingprotoPayload 与 jsonPayload 的日志记录
【发布时间】:2020-02-21 09:57:06
【问题描述】:

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

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

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

那么,是否有任何其他选项可以轻松地将请求日志条目与该请求的其余应用日志条目绑定?

【问题讨论】:

  • 您是在云控制台日志查看器 UI 中搜索,还是在查询导出到 BigQuery 的日志?
  • 只是控制台日志查看器 UI。似乎当我使用appspot.com 时,跟踪查看器能够显示与请求相关的其他日志,并且向下钻取有一个不同的查询,显示所有相关条目。但是,当我使用自定义域访问应用程序时,相关的日志条目不会显示在跟踪中,并且深入到日志有一个不同的查询,它只按 request_id 搜索。
  • 如果将字段名称从“requestId”更改为其他名称,会发生什么?
  • 凯文,请看我发布的答案。我已经能够在日志条目中使用“trace”了。

标签: google-app-engine google-bigquery google-cloud-stackdriver


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多