0

背景

我有一个 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()

在此处输入图像描述

4

1 回答 1

1

[免责声明:我在LightStep 工作]

很抱歉,您无法让 Java 和 Go 协同工作。我怀疑这是由于在 Java 中启用了时间校正但在 Go 中没有使用造成的。

withClockSkewCorrection(boolean clockCorrection) 您可以在将选项传递给 LightStep 跟踪器时使用关闭时钟校正的选项在 Java 中禁用时间校正

这是更新的自述文件和选项代码的链接

如果您通过 LightStep 中的 [支持] 按钮与我们联系,我们应该能够帮助您解决问题。请给我们发送一条便条,以便我们确认已为您解决此问题。

我们将开始更仔细地监控 SO,以便我们更早地发现这些东西。

感谢和快乐的追踪!

将要

于 2017-06-13T18:43:41.387 回答