2017-05-05 132 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