从zipkintracer获取traceId

时间:2016-06-24 17:54:51

标签: go tracing zipkin opentracing

我正在使用zipkin-go-opentracing,这是一个用于zip的opentracing API的实现。

对于(原因)我需要从span获取traceId。所以问题是: 给一个opentracing.Span,我如何获得TraceId? 我尝试过的所有东西都给了我某种类型的断言错误。

谢谢,

2 个答案:

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