背景
我有一个java服务器正在对go服务器进行RPC调用。 java rpc客户端和go rpc服务器使用lightstep进行检测。关于跟踪的一切看起来都很正常,除了在lightstep UI中的位置,放置了rpc服务器范围。
java span有ts 1493929521325,它在请求发送到go服务器之前。 go rpc服务器有2个时间戳:1493929521326是收到请求并启动跨度时,1493929521336是在响应并完成跨度后。
问题
我希望UI能够横向延伸到java span的右边。相反,它是在右边。
我能想到的唯一可能原因是java代码正在使用的v0.10.1与正在使用的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()
答案 0 :(得分:1)
[免责声明:我在LightStep]
工作很抱歉,您无法让Java和Go一起玩得很好。我怀疑这是由于在Java中启用了时间校正但未在Go中使用。
您可以使用withClockSkewCorrection(boolean clockCorrection)
禁用Java中的时间更正
将选项传递给LightStep跟踪器时关闭clockCorrection的选项
以下是更新的README和指向option code
的链接如果您通过LightStep中的[支持]按钮与我们联系,我们应该能够让您整理出来。请发给我们一张纸条,以便我们确认这是为您解决的。
我们会更仔细地开始监控,以便我们更早地抓住这些东西。
感谢和快乐的追踪!
威尔