1

在大多数情况下,Cloud Trace 和 Cloud Logging 集成得非常好,如https://cloud.google.com/trace/docs/trace-log-integration中所述

不幸的是,这似乎不包括启用请求日志记录时负载均衡器生成的 HTTP 请求日志。

LB 日志显示跟踪图标,并与 Cloud Trace 系统中的整体跟踪正确关联,但这些日志项的上下文菜单“显示跟踪详细信息”显示为灰色。

我的应用程序级日志记录/跟踪出现了类似的问题,并通过traceSampled在 LogEntry 上设置属性来解决,但这不适用于 LB 日志,因为我无法控制它们的生成。

在这种情况下,我正在跟踪 100% 的请求,因为该服务是 M2M 且容量相当低,但在一般情况下,LB 无法知道某些东西是否真的在不被告知的情况下生成跟踪是有道理的。

我在文档中找不到任何好的参考资料,但从理论上讲,LB 可以观察到表明它已被采样的响应标头并导致它发出适当的日志。

如果存在这样的功能,以这种形式或任何其他形式存在,有什么想法吗?

(最后的解决方法可能是使用 Logs Router 将 LB 日志提供给 pubsub 队列(并将它们从正常的日志接收器中排除),然后将它们重新提交到正常接收器,并使用某些云功能或其他 pubsub 适当设置的字段消费者,但这似乎需要大量的工作和复杂性)

4

1 回答 1

1

目前有一个为此创建的功能请求,您可以按照以下链接1中的状态进行操作。

根据全局外部 HTTP(S) 负载均衡器的文档,作为一种解决方法,您可以与负载均衡器一起实施目标代理:

代理设置 HTTP 请求/响应标头如下:

  • 通过:1.1 google(请求和响应)
  • X-Forwarded-Proto:[http | https](仅限请求)
  • X-Cloud-Trace-Context:<trace-id>/<span-id>;<trace-options>(仅限请求)包含 Cloud Trace 的参数。
  • X-Forwarded-For:[<supplied-value>,]<client-ip>,<load-balancer-ip>(参见 X-Forwarded-For 标头)(仅限请求)

您可以在此处2找到有关外部 HTTP(S) 负载平衡器和目标代理的完整文档。

最后,在此处查看有关如何使用和配置目标代理的文档3

于 2021-12-07T15:13:48.860 回答