我正在使用zipkin-go-opentracing,它是 go 中 zipkin 的opentracing API 的实现。
由于(原因)我需要从跨度中获取traceId。所以问题是:给定一个 opentracing.Span,我如何获得 TraceId?我尝试过的一切都给了我某种类型断言错误。
谢谢,
我正在使用zipkin-go-opentracing,它是 go 中 zipkin 的opentracing API 的实现。
由于(原因)我需要从跨度中获取traceId。所以问题是:给定一个 opentracing.Span,我如何获得 TraceId?我尝试过的一切都给了我某种类型断言错误。
谢谢,
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
}
我不确定这是正确的方法,但这通常应该有效
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()
}