Spring cloud 设置跨距';《勇敢vs.侦探》中的追踪id

Spring cloud 设置跨距';《勇敢vs.侦探》中的追踪id,spring-cloud,spring-cloud-sleuth,brave,Spring Cloud,Spring Cloud Sleuth,Brave,我正在寻找正确的方法来设置Brave中跨度的跟踪id。我们有: Span=Span.builder().traceId(someLong.build() 勇敢是什么?我有以下内容,但它显然是不正确的,因为无法显式地设置跨度的上下文 Span=tracer.nextSpan().start() span.context().toBuilder().traceId(someLong.build()您可以这样做brave.Span=tracer.nextSpan().name(“name”).trac

我正在寻找正确的方法来设置Brave中跨度的跟踪id。我们有:

Span=Span.builder().traceId(someLong.build()

勇敢是什么?我有以下内容,但它显然是不正确的,因为无法显式地设置跨度的上下文

Span=tracer.nextSpan().start()

span.context().toBuilder().traceId(someLong.build()

您可以这样做
brave.Span=tracer.nextSpan().name(“name”).traceId(someLong.start()

还是更进一步

brave.Span span = tracer.nextSpan().name("name").traceId(someLong);
try (SpanInScope ws = tracer.withSpanInScope(span.start())) {
  // do sth
} finally {
  span.finish();
}

查看以捕获所有更改

您可以这样做
brave.Span=tracer.nextSpan().name(“name”).traceId(someLong.start()

还是更进一步

brave.Span span = tracer.nextSpan().name("name").traceId(someLong);
try (SpanInScope ws = tracer.withSpanInScope(span.start())) {
  // do sth
} finally {
  span.finish();
}

查看以捕获所有更改

您可以使用TraceContext Builder设置自己的TraceId

    TraceContext traceContext = TraceContext.newBuilder().traceId(traceId).build();
    Span span =
            this.tracing.tracer()
                    .toSpan(traceContext)
                    .name("application.name"))
                    .start();
这是可选的;创建新范围时,可以让跟踪器生成自己的traceId:-

this.tracing.tracer().nextSpan().name("application.name").start();

您可以使用TraceContext Builder设置自己的TraceId

    TraceContext traceContext = TraceContext.newBuilder().traceId(traceId).build();
    Span span =
            this.tracing.tracer()
                    .toSpan(traceContext)
                    .name("application.name"))
                    .start();
这是可选的;创建新范围时,可以让跟踪器生成自己的traceId:-

this.tracing.tracer().nextSpan().name("application.name").start();

我们可以先建立
TraceContext
,然后使用它来创建
TraceContext或采样标志
,然后使用这些标志来创建
Span
,如下所示:

TraceContext traceContext = TraceContext.newBuilder()
                            .traceId(someTraceId)
                            .spanId(someSpanId)
                            .build();

Span span = tracer.nextSpan(TraceContextOrSamplingFlags.create(traceContext))
                            .name(someName).start();


我们可以先建立
TraceContext
,然后使用它来创建
TraceContext或采样标志
,然后使用这些标志来创建
Span
,如下所示:

TraceContext traceContext = TraceContext.newBuilder()
                            .traceId(someTraceId)
                            .spanId(someSpanId)
                            .build();

Span span = tracer.nextSpan(TraceContextOrSamplingFlags.create(traceContext))
                            .name(someName).start();


traceId()
不是setter。您是对的。默认情况下,根跟踪程序生成64位或128位
traceId
s。尽管如此,您至少可以通过
TraceContext
为子跟踪设置
traceId
,就像新创建的跟踪一样
traceId()
不是设置器。您是正确的。默认情况下,根跟踪程序生成64位或128位
traceId
s。尽管如此,您至少可以通过
TraceContext
为子跟踪设置
traceId
,与新创建的跟踪相同