Search in sources :

Example 66 with Scope

use of io.opentracing.Scope in project jaeger-client-java by jaegertracing.

the class ActiveSpanTest method testActiveSpanAutoReference.

@Test
public void testActiveSpanAutoReference() {
    Span span = tracer.buildSpan("parent").start();
    try (Scope ignored = tracer.activateSpan(span)) {
        tracer.buildSpan("child").start().finish();
    } finally {
        span.finish();
    }
    assertEquals(2, reporter.getSpans().size());
    JaegerSpan childSpan = reporter.getSpans().get(0);
    assertEquals("child", childSpan.getOperationName());
    assertEquals(1, childSpan.getReferences().size());
    assertEquals(References.CHILD_OF, childSpan.getReferences().get(0).getType());
    JaegerSpan parentSpan = reporter.getSpans().get(1);
    assertEquals("parent", parentSpan.getOperationName());
    assertTrue(parentSpan.getReferences().isEmpty());
    JaegerSpanContext childSpanContext = childSpan.context();
    JaegerSpanContext parentSpanContext = parentSpan.context();
    assertEquals(parentSpan.context(), childSpan.getReferences().get(0).getSpanContext());
    assertEquals(parentSpanContext.getTraceId(), childSpanContext.getTraceId());
    assertEquals(parentSpanContext.getSpanId(), childSpanContext.getParentId());
}
Also used : Scope(io.opentracing.Scope) Span(io.opentracing.Span) Test(org.junit.Test)

Example 67 with Scope

use of io.opentracing.Scope in project jaeger-client-java by jaegertracing.

the class ActiveSpanTest method testCustomScopeManager.

@Test
public void testCustomScopeManager() {
    Span span = mock(Span.class);
    Scope scope = mock(Scope.class);
    JaegerTracer tracer = new JaegerTracer.Builder("test").withReporter(new InMemoryReporter()).withSampler(new ConstSampler(true)).withScopeManager(new ScopeManager() {

        @Override
        public Scope activate(Span span) {
            return scope;
        }

        @Override
        public Span activeSpan() {
            return span;
        }
    }).build();
    assertEquals(span, tracer.scopeManager().activeSpan());
    assertEquals(scope, tracer.scopeManager().activate(span));
}
Also used : InMemoryReporter(io.jaegertracing.internal.reporters.InMemoryReporter) ScopeManager(io.opentracing.ScopeManager) Scope(io.opentracing.Scope) ConstSampler(io.jaegertracing.internal.samplers.ConstSampler) Span(io.opentracing.Span) Test(org.junit.Test)

Example 68 with Scope

use of io.opentracing.Scope in project jaeger-client-java by jaegertracing.

the class TraceBehaviorResourceTest method testStartTraceHttp.

@Test
public void testStartTraceHttp() throws Exception {
    Span root = server.getTracer().buildSpan("root").start();
    String expectedTraceId = ((JaegerSpanContext) root.context()).getTraceId();
    String expectedBaggage = "baggage-example";
    try (Scope scope = server.getTracer().activateSpan(root)) {
        Downstream downstream = new Downstream(SERVICE_NAME, "127.0.0.1", String.valueOf(port), Constants.TRANSPORT_HTTP, "server", null);
        StartTraceRequest startTraceRequest = new StartTraceRequest("server-role", expectedSampled, expectedBaggage, downstream);
        Response resp = JerseyServer.client.target(String.format("http://%s/start_trace", hostPort)).request(MediaType.APPLICATION_JSON).post(Entity.json(startTraceRequest));
        TraceResponse traceResponse = resp.readEntity(TraceResponse.class);
        assertNotNull(traceResponse.getDownstream());
        validateTraceResponse(traceResponse, expectedTraceId, expectedBaggage, 1);
    }
}
Also used : StartTraceRequest(io.jaegertracing.crossdock.api.StartTraceRequest) TraceResponse(io.jaegertracing.crossdock.api.TraceResponse) Response(javax.ws.rs.core.Response) Scope(io.opentracing.Scope) ObservedSpan(io.jaegertracing.crossdock.api.ObservedSpan) Span(io.opentracing.Span) Downstream(io.jaegertracing.crossdock.api.Downstream) JaegerSpanContext(io.jaegertracing.internal.JaegerSpanContext) TraceResponse(io.jaegertracing.crossdock.api.TraceResponse) Test(org.junit.Test)

Example 69 with Scope

use of io.opentracing.Scope in project jaeger-client-java by jaegertracing.

the class TraceBehaviorResourceTest method testJoinTraceHttp.

@Test
public void testJoinTraceHttp() throws Exception {
    Span root = server.getTracer().buildSpan("root").start();
    String expectedBaggage = "baggage-example";
    root.setBaggageItem(Constants.BAGGAGE_KEY, expectedBaggage);
    if (expectedSampled) {
        Tags.SAMPLING_PRIORITY.set(root, 1);
    }
    try (Scope scope = server.getTracer().activateSpan(root)) {
        Downstream bottomDownstream = new Downstream(SERVICE_NAME, "127.0.0.1", String.valueOf(port), Constants.TRANSPORT_HTTP, "server", null);
        Downstream topDownstream = new Downstream(SERVICE_NAME, "127.0.0.1", String.valueOf(port), Constants.TRANSPORT_HTTP, "server", bottomDownstream);
        JoinTraceRequest joinTraceRequest = new JoinTraceRequest("server-role", topDownstream);
        Response resp = JerseyServer.client.target(String.format("http://%s/join_trace", hostPort)).request(MediaType.APPLICATION_JSON).post(Entity.json(joinTraceRequest));
        TraceResponse traceResponse = resp.readEntity(TraceResponse.class);
        assertNotNull(traceResponse.getDownstream());
        validateTraceResponse(traceResponse, ((JaegerSpanContext) root.context()).getTraceId(), expectedBaggage, 2);
    }
}
Also used : TraceResponse(io.jaegertracing.crossdock.api.TraceResponse) Response(javax.ws.rs.core.Response) Scope(io.opentracing.Scope) JoinTraceRequest(io.jaegertracing.crossdock.api.JoinTraceRequest) ObservedSpan(io.jaegertracing.crossdock.api.ObservedSpan) Span(io.opentracing.Span) Downstream(io.jaegertracing.crossdock.api.Downstream) TraceResponse(io.jaegertracing.crossdock.api.TraceResponse) Test(org.junit.Test)

Example 70 with Scope

use of io.opentracing.Scope in project cxf by apache.

the class AbstractOpenTracingClientProvider method stopTraceSpan.

protected void stopTraceSpan(final TraceScopeHolder<TraceScope> holder, final int responseStatus) {
    if (holder == null) {
        return;
    }
    final TraceScope traceScope = holder.getScope();
    if (traceScope != null) {
        Span span = traceScope.getSpan();
        Scope scope = traceScope.getScope();
        // in another thread and should be re-attached to the current one.
        if (holder.isDetached()) {
            scope = tracer.scopeManager().activate(span);
        }
        span.setTag(Tags.HTTP_STATUS.getKey(), responseStatus);
        span.setTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT);
        span.finish();
        scope.close();
    }
}
Also used : Scope(io.opentracing.Scope) Span(io.opentracing.Span)

Aggregations

Scope (io.opentracing.Scope)80 Test (org.junit.Test)52 Span (io.opentracing.Span)46 MockSpan (io.opentracing.mock.MockSpan)10 Tracer (io.opentracing.Tracer)7 Response (javax.ws.rs.core.Response)6 InMemoryReporter (com.uber.jaeger.reporters.InMemoryReporter)5 ConstSampler (com.uber.jaeger.samplers.ConstSampler)5 ScopeManager (io.opentracing.ScopeManager)5 SpanInScope (brave.Tracer.SpanInScope)4 SpanContext (io.opentracing.SpanContext)4 HashMap (java.util.HashMap)4 SpanBuilder (io.opentracing.Tracer.SpanBuilder)3 IOException (java.io.IOException)3 Traced (org.eclipse.microprofile.opentracing.Traced)3 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)3 BraveSpan (brave.opentracing.BraveSpan)2 RequestTraceSpan (fish.payara.notification.requesttracing.RequestTraceSpan)2 RequestTracingService (fish.payara.nucleus.requesttracing.RequestTracingService)2 Downstream (io.jaegertracing.crossdock.api.Downstream)2