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

Posted

技术标签:

【中文标题】是否可以从 Google Cloud 服务请求跟踪?【英文标题】:Is it possible to request tracing from Google Cloud services? 【发布时间】:2018-10-16 11:28:19 【问题描述】:

我在连接到 Google Cloud Endpoints 的 Endpoints Service Proxy (ESP) 后面部署了一个自定义 gRPC 后端。

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

感谢您调查此事,蒂姆!

以上是关于是否可以从 Google Cloud 服务请求跟踪?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 google cloud-trace 请求跟踪

从 Google Cloud Run 服务中的 docker 容器到 Google Cloud SQL 的请求最多需要 2 分钟

将文件从 Google Cloud Storage 添加到云端硬盘

使用 OpenTelemetry 在 Google Cloud Run 上跟踪传播

如何跟踪 Google Cloud 公共数据集的变化?

Stackdriver Trace 与 Google Cloud Run