2016-06-24 8 views
2

Ich benutze zipkin-go-opentracing, die eine Implementierung der opentracing API für Zipkin in Go ist.erhalten TraceId von Zipkintracer

Für (Gründe) muss ich die TraceId von einer Spanne erhalten. Also die Frage: gegeben eine opentracing.Span, wie bekomme ich die TraceId? Alles, was ich versucht habe, hat mir eine Art Assertionsfehler gegeben.

Danke,

+0

Siehe http://stackoverflow.com/questions/42699603/ how-can-i-get-a-verfolgen-id-from-opentracing-api –

Antwort

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

Ich habe versucht, dies zu tun, aber ich habe TraceID nicht definiert Fehler. Es nimmt den Kontext von Opentracing auf –

0

Ich bin nicht sicher, dies ist der richtige Weg, es zu tun, aber dies sollte normalerweise arbeitet

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