我正在尝试在运行 Google Cloud Run 实例时使用 Stackdriver 跟踪。
但是,当跟踪从点 A 到容器实例的调用时,跟踪 parent_span_id 被破坏。这会导致堆栈驱动程序视图上的跟踪中断,如下所示:
图像中的第一行是对我的 Cloud Run 端点的调用。最后两行是来自该端点的跟踪。请注意显示器如何无法正确显示它们。
根据我的调查,最后呈现的 span 中的 parent_span_id 是一个从未报告给 StackDriver 的 span_id,这意味着 UI(或人类)无法将跟踪放在一起。
我的理论是,执行 SSL/TLS 终止的 Google Cloud 端点用它自己的跨度(合法)替换了跨度,但从不向 Stackdriver 报告自己的流量,从而破坏了所有跨越 GCR 边界的跟踪。
ahmetb 维护的非官方常见问题解答(截至 2019 年 12 月)似乎支持了这一理论。
无论容器是使用 node.js 还是 python 或任何其他运行时,这似乎都会发生。
任何想法/建议或我错过的东西?