我正在使用 Go 中的 OpenCensus 将跟踪数据推送到 Stackdriver 以处理涉及 2 个或更多微服务链的调用,我注意到我得到了许多跟踪,这些跟踪仅包含某些服务的跨度,而不是整个端到端调用。
目前,我将此归因于这样一个事实,即并非所有调用都被跟踪(仅跟踪某个样本(,并且每个服务决定是否跟踪其当前跨度。
这是它打算的工作方式吗?有没有办法确保在对跟踪进行采样时,调用链中的所有服务都这样做了?
在架构上,我会说当你开发你的微服务时,确保你的API网关创建一个唯一的ID,如GUID,它通过所有微服务传播,同样,你确保你有日志聚合器,它将从所有服务收集日志,最后你得到了很好的请求可追溯性。