2016-06-24 10 views
2

이동 중에 zipkin 용 opentracing API 구현 인 zipkin-go-opentracing을 사용하고 있습니다.zipkintracer에서 traceId 가져 오기

왜냐하면 (이유) 스팬에서 traceId를 가져와야합니다. 그래서 질문 : 주어진 opentracing.Span, 어떻게 TraceId를 얻을 수 있습니까? 내가 시도한 모든 것은 나에게 일종의 어설 션 오류를 주었다.

덕분에,

+0

참조 작동한다 http://stackoverflow.com/questions/42699603/ how-can-i-get-a-trace-id-opentracing-api –

답변

0
import (
    "github.com/opentracing/opentracing-go" 
    "github.com/openzipkin/zipkin-go-opentracing" 
) 
func IdFromSpan(aspan interface{}) uint64 { 
    zspan := aspan.(zipkintracer.Span) 
    return zspan.Context().TraceID 
} 
+0

나는이 일을 시도했지만 TraceID 정의되지 않은 오류가 발생했습니다. opentracing에서 컨텍스트를 가져옵니다. –

0

나는이 그것을 할 올바른 방법입니다 확실하지 않다 그러나 이것은 일반적으로

stdopentracing "github.com/opentracing/opentracing-go" 
zipkin "github.com/openzipkin/zipkin-go-opentracing" 

[...] 

var traceID string 

sp := stdopentracing.SpanFromContext(ctx) 

if sp != nil { 
    traceID = sp.Context().(zipkin.SpanContext).TraceID.ToHex() 
}