是否可以从 Google 云服务请求跟踪?

Is it possible to request tracing from Google Cloud services?

我在连接到 Google 云端点的端点服务代理 (ESP) 后面部署了自定义 gRPC 后端。

发送请求时 with the X-Cloud-Trace-Context header set,我可以在我的 Stackdriver Trace 仪表板中看到 ESP 记录的跨度。

但是,作为处理该请求的一部分,我的服务也会向 Google Cloud KMS 发送请求。我希望 Google Cloud 也能自动为我创建那些 sub-requests 的跟踪跨度;但是,将 ESP 转发给我的 X-Cloud-Trace-Context header 附加到发送到 Cloud KMS 的 sub-requests 不会导致那些 sub-requests 的任何跨度显示在 Stackdriver Trace 中。用于连接到 Cloud KMS 的服务帐户确实启用了 "Stackdriver Trace Agent" 角色。

是否可以告诉 Google 云服务(例如 Cloud KMS)为当前请求的跟踪上下文自动生成跟踪跨度,或者我是否需要为这些手动生成跟踪在我的后端代码中请求?

Cloud Trace 当前不会为对大多数 GCP 服务的请求生成服务端跟踪,尽管我们知道它是一项有价值的功能。要跟踪 KMS(或其他服务)消耗了多少延迟,您可以使用 OpenCensus (Github) 或类似方法创建客户端跟踪记录。

Cloud KMS(截至撰写本文时)不支持 gRPC,但我们正在努力。