如何解决如何在单独的 Cloud Run 请求中手动指定 X-Cloud-Trace-Context 标头值并关联和跟踪日志?
我正在使用 Cloud Run 和 Cloud Tasks 对 Webhook 进行一些异步处理。当我收到对我的 Cloud Run 服务的请求时,我会在我的 Cloud Tasks 队列中排队一个任务并立即从我的服务返回响应。然后 Cloud Tasks 将再次触发我的服务(不同的端点)并进行一些处理。我想使用相同的跟踪 ID 关联这些步骤中的所有日志,但它不起作用。
在 Cloud Tasks 中创建任务时,我请求它发送 X-Cloud-Trace-Context
标头,并使用原始请求的 X-Cloud-Trace-Context
标头值填充它。理论上,当请求从 Cloud Tasks 发送到我的 Cloud Run 服务时,它应该具有此标头值,并且我的所有日志都将正确关联。但是,当第二个请求到来时,Cloud Run 似乎正在使用新的跟踪 ID 覆盖标头。
有没有办法防止这种情况发生?如果不是,在上述步骤中关联所有日志(由服务代码生成以及由 GCP 自动生成的日志)的推荐解决方案是什么?
感谢您的帮助!
解决方法
我认为您无法覆盖 Cloud Tasks 设置的 HTTP 标头,但您可以覆盖发送到 Stack Driver 的日志记录中的 trace
成员。
因此,您可以在任务负载中包含原始跟踪 ID,然后覆盖执行实际工作的 Cloud Run 端点生成的日志中的 trace
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。