use of brave.Span in project brave by openzipkin.
the class Log4JThreadContextTest method customCurrentTraceContext.
/**
* One common request is to support SLF4J or Log4J2 log correlation. This shows you can make a
* custom implementation
*/
@Test
public void customCurrentTraceContext() {
assertThat(ThreadContext.get("traceID")).isNull();
Tracer tracer = Tracing.newBuilder().currentTraceContext(new Log4J2CurrentTraceContext()).build().tracer();
Span parent = tracer.newTrace();
try (Tracer.SpanInScope wsParent = tracer.withSpanInScope(parent)) {
// the trace id is now in the logging context
assertThat(ThreadContext.get("traceId")).isEqualTo(parent.context().traceIdString());
// Clear a scope temporarily
try (Tracer.SpanInScope noScope = tracer.withSpanInScope(null)) {
assertThat(tracer.currentSpan()).isNull();
}
Span child = tracer.newChild(parent.context());
try (Tracer.SpanInScope wsChild = tracer.withSpanInScope(child)) {
// nesting worked
assertThat(ThreadContext.get("traceId")).isEqualTo(child.context().traceIdString());
}
// old parent reverted
assertThat(ThreadContext.get("traceId")).isEqualTo(parent.context().traceIdString());
}
assertThat(ThreadContext.get("traceId")).isNull();
Tracing.current().close();
}
use of brave.Span in project brave by openzipkin.
the class ExtraFieldPropagationTest method nextSpanExtraWithImplicitParent_butNoExtractedExtraFields.
@Test
public void nextSpanExtraWithImplicitParent_butNoExtractedExtraFields() {
try (Tracing tracing = Tracing.newBuilder().propagationFactory(factory).build()) {
ExtraFieldPropagation.set(context, "x-vcap-request-id", "foo");
Span span = tracing.tracer().toSpan(context);
try (Tracer.SpanInScope ws = tracing.tracer().withSpanInScope(span)) {
TraceContext context1 = tracing.tracer().nextSpan(extractor.extract(carrier)).context();
// merged
assertThat(context1.extra()).hasSize(1);
ExtraFieldPropagation.Extra extra = ((ExtraFieldPropagation.Extra) context1.extra().get(0));
assertThat(extra.values).containsExactly("foo", null);
assertThat(extra.context).isSameAs(context1);
}
}
}
use of brave.Span in project brave by openzipkin.
the class ExtraFieldPropagationTest method toSpan_selfLinksContext.
@Test
public void toSpan_selfLinksContext() {
try (Tracing t = Tracing.newBuilder().propagationFactory(factory).build()) {
ExtraFieldPropagation.set(context, "x-amzn-trace-id", awsTraceId);
Span span = t.tracer().toSpan(context);
ExtraFieldPropagation.Extra extra = (ExtraFieldPropagation.Extra) span.context().extra().get(0);
assertThat(extra.context).isSameAs(span.context());
}
}
use of brave.Span in project incubator-servicecomb-java-chassis by apache.
the class ZipkinTracingHandler method handle.
@Override
public void handle(Invocation invocation, AsyncResponse asyncResp) throws Exception {
Span span = tracingDelegate.createSpan(invocation);
try (SpanInScope scope = tracer.tracer().withSpanInScope(span)) {
LOGGER.debug("{}: Generated tracing span for {}", tracingDelegate.name(), invocation.getOperationName());
invocation.next(onResponse(invocation, asyncResp, span));
} catch (Exception e) {
LOGGER.debug("{}: Failed invocation on {}", tracingDelegate.name(), invocation.getOperationName(), e);
tracingDelegate.onResponse(span, null, e);
throw e;
}
}
use of brave.Span in project spring-cloud-gcp by spring-cloud.
the class StackdriverTraceAutoConfigurationTests method test.
@Test
public void test() {
this.contextRunner.run(context -> {
SleuthProperties sleuthProperties = context.getBean(SleuthProperties.class);
assertThat(sleuthProperties.isTraceId128()).isTrue();
assertThat(sleuthProperties.isSupportsJoin()).isFalse();
Reporter<zipkin2.Span> reporter = context.getBean(Reporter.class);
assertThat(reporter).isInstanceOf(StackdriverTraceReporter.class);
Tracer tracer = context.getBean(Tracer.class);
Span span = tracer.newTrace().start().kind(Span.Kind.CLIENT).name("test").start();
span.finish();
// There should be one trace received
MockConfiguration configuration = context.getBean(MockConfiguration.class);
assertThat(configuration.tracesList.size()).isEqualTo(1);
Traces traces = configuration.tracesList.get(0);
assertThat(traces.getTracesCount()).isEqualTo(1);
Trace trace = traces.getTraces(0);
assertThat(trace.getSpansCount()).isEqualTo(1);
TraceSpan traceSpan = trace.getSpans(0);
});
}
Aggregations