我有2个异步(非HTTP)作业在不同的进程中运行。我想使用我自己生成的TraceID和SpanID,用于使用GO的OpenTelemetry库的所有跟踪和跨度。(我使用Signoz进行可视化,但这不重要)。
1.)如何为根范围设置TraceID和SpanID 2.)如何设置SpanID并将其指向在(1)中创建的具有TraceId的自定义根范围
下面是(2),但我看到了缺失的痕迹。`
b3 := []byte("9cec1f9bb461a96e023efebc879da11c")
copy(ptid[:], b3)
b4 := []byte("3fc56ecf2453bda8")
var parentSpanCtx = trace.NewSpanContext(trace.SpanContextConfig{
TraceID: ptid,
SpanID: trace.SpanID(b4),
TraceFlags: trace.FlagsSampled,
Remote: true,
})`
var parentCtx = trace.ContextWithSpanContext(context.Background(), parentsc)
ctx, span := tracer.Start(parentCtx, stage.Name)
我试着用正确的Parent TraceID和SpanId为childSpans设置SpanContext,但它不起作用。它显示为缺少根的跨距。
1条答案
按热度按时间bq3bfh9z1#
这里有一个例子,同时回答了(1)和(2)。