我正在使用zipkin-go-opentracing,这是一个用于zip的opentracing API的实现。
对于(原因)我需要从span获取traceId。所以问题是: 给一个opentracing.Span,我如何获得TraceId? 我尝试过的所有东西都给了我某种类型的断言错误。
谢谢,
答案 0 :(得分: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
}
答案 1 :(得分: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()
}