2017-05-05 105 views
0

背景Lightstep:儿童跨度

不准确的UI我有一个使RPC调用将转至服务器的Java服务器。 java rpc客户端和go rpc服务器都装有lightstep。有关跟踪的所有内容看起来都很正常,除了在lightstep UI中放置go rpc服务器跨度的位置。

java span拥有ts 1493929521325,这正好在请求被发送到go服务器之前。 go rpc服务器有两个时间戳:1493929521326是当它收到请求并开始跨度时,1493929521336是在它响应并完成跨度之后。

问题

我期望的UI在水平方向有旅途跨度到java跨度的直接权利。相反,这是远远不够的。

我能想到的唯一可能的原因是Java代码正在使用的v0.10.1与正在使用的v0.9.1之间的不兼容。这有可能吗?你对可能的原因有任何想法吗?

转到代码基本上是:

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() 

enter image description here

回答

1

[免责声明:我在LightStep]

对不起你遇到麻烦的Java工作,去演得很好。我怀疑这是由于在Java中启用时间校正而导致的,但未在Go中使用。

可以使用withClockSkewCorrection(boolean clockCorrection) 选项选项传递给LightStep示踪

这里是更新README并向option code

如果你接触一个链接时关闭clockCorrection在Java中禁用时间校正我们通过LightStep中的[支持]按钮,我们应该能够让你整理出来。请给我们一张便条,以便我们确认这个问题已经解决。

我们将更仔细地开始监控SO,以便我们能够更早地掌握这些内容。

感谢和快乐的追踪!

意愿

+0

请问您可以创建一个lightstep SO标签吗? – lf215