背景
我有一个 java 服务器正在对 go 服务器进行 RPC 调用。java rpc 客户端和 go rpc 服务器使用 lightstep 进行检测。除了在 lightstep UI 中放置 go rpc 服务器 span 的位置之外,跟踪的所有内容看起来都很正常。
java span 有 ts 1493929521325,正好在请求发送到 go 服务器之前。go rpc 服务器有 2 个时间戳:1493929521326 是它收到请求并启动 span 的时间,1493929521336 是它响应并完成 span 之后的时间戳。
问题
我希望 UI 的 go span 水平位于 java span 的右侧。相反,它在右边很远。
我能想到的唯一可能的原因是 java 代码使用的 v0.10.1 和 go 使用的 v0.9.1 之间的不兼容。这是一种可能吗?您对可能的原因有什么想法吗?
go代码本质上是:
import (
lightstep "github.com/lightstep/lightstep-tracer-go"
opentracing "github.com/opentracing/opentracing-go"
)
tracer := lightstep.NewTracer(lightstep.Options{
AccessToken: ls.AccessToken,
Collector: lightstep.Endpoint{ls.Host, ls.Port, true},
Tags: map[string]interface{}{lightstep.ComponentNameKey: component},
})
spanContext, err := tracer.Extract(opentracing.TextMap, opentracing.TextMapCarrier(req.GetLightstepData()))
span = tracer.StartSpan(
endpoint,
opentracing.ChildOf(spanContext))
}
// handle the request
span.Finish()