mui*_*uin 7 google-cloud-platform google-cloud-trace google-cloud-logging google-cloud-tasks google-cloud-run
我正在使用 Cloud Run 和 Cloud Tasks 对 Webhooks 进行一些异步处理。当我收到对 Cloud Run 服务的请求时,我会在 Cloud Tasks 队列中对任务进行排队,并立即从服务返回响应。然后,云任务将再次触发我的服务(不同的端点)并进行一些处理。我想使用相同的跟踪 ID 关联这些步骤中的所有日志,但它不起作用。
在 Cloud Tasks 中创建任务时,我请求它发送X-Cloud-Trace-Context标头,并用原始请求的标头值填充它X-Cloud-Trace-Context。理论上,当请求从 Cloud Tasks 发送到我的 Cloud Run 服务时,它应该具有此标头值,并且我的所有日志都将正确关联。但是,当第二个请求到来时,Cloud Run 似乎正在使用新的跟踪 ID 覆盖标头。
有没有办法防止这种情况发生?如果不是,那么在上述步骤中关联所有日志(由服务代码生成以及 GCP 自动生成的日志)的推荐解决方案是什么?
谢谢您的帮助!
我认为您无法覆盖 Cloud Tasks 设置的 HTTP 标头,但您可以覆盖trace发送到 Stack Driver 的日志记录中的成员。
因此,您可以在任务负载中包含原始跟踪 ID,然后覆盖trace执行实际工作的 Cloud Run 端点生成的日志中的 ID。
| 归档时间: |
|
| 查看次数: |
2287 次 |
| 最近记录: |