有没有办法从跟踪生命周期的任何地方获取完整的跟踪请求?
基本上,如果我有跟踪的中间点或终点,我可以使用这些点来获取请求的完整跟踪吗?
我想构建一个跟踪服务(在 Golang 中),只要用户在请求跟踪期间随时提供点/跨度,该服务就可以返回请求的完整跟踪。
我尝试过搜索并查看是否有任何项目提到了向后追踪或类似的内容。
目前,使用 Datadog 等其他跟踪器,在给定任何非开始点的情况下,不可能获取完整请求的跟踪。
在 OpenTelemetry 中,跟踪 ID 是不可变的 https://github.com/open-telemetry/opentelemetry-specification/blob/2d2c55533e3b2540b430396b882c3eb5c2206e5b/specification/trace/api.md#spancontext并且对于整个逻辑请求来说是相同的(假设W3C 标头 https://www.w3.org/TR/trace-context/#solution)。跟踪是有向无环图,这意味着可以通过查找具有相同跟踪 ID 的所有跨度,然后按其边(由跨度 ID 和父跨度 ID 字段确定)对它们进行排序来确定排序。这意味着只要您拥有所有可用的跨度,您就可以非常轻松地“回顾” - 您只需查找与您拥有的跨度具有相同跟踪 ID 的所有内容,然后创建图形。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)