Cloud Run 中的日志追踪与 Knative Serving 实践
1. 追踪上下文(Trace Context)
在处理请求并调用其他 Cloud Run 服务时,我们希望将第一个请求和第二个请求的日志分组显示。特别是当应用拆分为多个微服务协同工作时,这一功能尤为重要。若下游服务出现问题,我们需要了解调用它的服务中发生了什么。
分布式追踪是一个成熟且复杂的话题,这里仅作简要介绍。若要全面了解,可参考相关资料。
1.1 转发追踪 ID
捕获传入的追踪头并将追踪 ID 转发到服务的请求中,Cloud Logging 会将所有请求添加到同一追踪中。GFE 会为传入请求添加 X-Cloud-Trace-Context 头,并保留已有该头的请求的追踪 ID。
1.2 在 Go 中实现追踪 ID 转发
在 Go 中实现追踪 ID 转发的关键步骤如下:
1. 使用 crzerolog 包写入日志,将追踪 ID 添加到日志中。
2. 以 idtoken 包能理解的方式(使用 Go 的请求上下文)将追踪 ID 添加到所有传入请求中。
3. 将传入请求的上下文传递到传出请求,并使用 idtoken HTTP 客户端发出请求。
示例代码如下:
// "go.opencensus.io/plugin/ochttp"
// "contrib.go.opencensus.io/exporter
超级会员免费看
订阅专栏 解锁全文
655

被折叠的 条评论
为什么被折叠?



