Google cloud platform 如何手动指定X-Cloud-Trace-Context头值,并在单独的云运行请求中关联和跟踪日志?

Google cloud platform 如何手动指定X-Cloud-Trace-Context头值,并在单独的云运行请求中关联和跟踪日志?,google-cloud-platform,google-cloud-run,google-cloud-logging,google-cloud-tasks,google-cloud-trace,Google Cloud Platform,Google Cloud Run,Google Cloud Logging,Google Cloud Tasks,Google Cloud Trace,我使用云运行和云任务对Webhook进行异步处理。当我收到对我的云运行服务的请求时,我会在我的云任务队列中对任务进行排队,并立即从我的服务返回响应。云任务将再次触发我的服务(不同的端点)并进行一些处理。我想使用相同的跟踪id来关联这些步骤中的所有日志,但它不起作用 在云任务中创建任务时,我请求它发送X-Cloud-Trace-Context头,并用原始请求的X-Cloud-Trace-Context头值填充它。理论上,当请求从云任务到达我的云运行服务时,它应该有这个头值,并且我的所有日志都将正确

我使用云运行和云任务对Webhook进行异步处理。当我收到对我的云运行服务的请求时,我会在我的云任务队列中对任务进行排队,并立即从我的服务返回响应。云任务将再次触发我的服务(不同的端点)并进行一些处理。我想使用相同的跟踪id来关联这些步骤中的所有日志,但它不起作用

在云任务中创建任务时,我请求它发送
X-Cloud-Trace-Context
头,并用原始请求的
X-Cloud-Trace-Context
头值填充它。理论上,当请求从云任务到达我的云运行服务时,它应该有这个头值,并且我的所有日志都将正确关联。然而,当第二个请求出现时,看起来Cloud Run正在用一个新的跟踪id覆盖头部

有没有办法防止这种情况发生?如果没有,建议采用什么解决方案来关联上述步骤中的所有日志(由服务代码生成,以及由GCP自动生成的日志)


谢谢你的帮助

我认为您不能覆盖云任务设置的HTTP头,但是您可以覆盖发送到堆栈驱动程序的日志记录中的
跟踪成员

因此,您可以在任务负载中包含原始跟踪ID,然后在执行实际工作的云运行端点生成的日志中覆盖
跟踪