首页 > 解决方案 > 如何通过端到端的微服务链跟踪请求?

问题描述

我在 Go 中使用 OpenCensus 将跟踪数据推送到 Stackdriver 以进行涉及 2 个或更多微服务链的调用,我注意到我得到了许多跟踪,其中包含仅针对某些服务的跨度,而不是整个端到端调用。

目前,我将此归因于并非所有调用都被跟踪(仅某个样本)并且每个服务都决定是否跟踪其当前跨度这一事实。

这是它的工作方式吗?有什么方法可以确保在对跟踪进行采样时,调用链中的所有服务都会这样做?

标签: gostackdriverdistributed-tracinggoogle-cloud-traceopencensus

解决方案


从架构上讲,当您开发微服务时,请确保您的 API 网关创建一个唯一的 ID,如 GUID,它会通过所有微服务传播,同样,您要确保您有日志聚合器,它将从所有服务中收集日志,最后你得到很好的请求可追溯性。


推荐阅读