Search in sources :

Example 31 with Span

use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.

the class TraceBehavior method observeSpan.

private ObservedSpan observeSpan() {
    com.uber.jaeger.context.TraceContext traceContext = TracingUtils.getTraceContext();
    if (traceContext.isEmpty()) {
        log.error("No span found");
        return new ObservedSpan("no span found", false, "no span found");
    }
    Span span = (Span) traceContext.getCurrentSpan();
    if (span == null) {
        log.error("No span found");
        return new ObservedSpan("no span found", false, "no span found");
    }
    SpanContext context = span.context();
    String traceId = String.format("%x", context.getTraceId());
    boolean sampled = context.isSampled();
    String baggage = span.getBaggageItem(Constants.BAGGAGE_KEY);
    return new ObservedSpan(traceId, sampled, baggage);
}
Also used : ObservedSpan(com.uber.jaeger.crossdock.api.ObservedSpan) SpanContext(com.uber.jaeger.SpanContext) ObservedSpan(com.uber.jaeger.crossdock.api.ObservedSpan) Span(com.uber.jaeger.Span)

Example 32 with Span

use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.

the class TraceBehaviorResourceTest method testJoinTraceHttp.

@Test
public void testJoinTraceHttp() throws Exception {
    Span span = (Span) server.getTracer().buildSpan("root").start();
    TracingUtils.getTraceContext().push(span);
    String expectedBaggage = "baggage-example";
    span.setBaggageItem(Constants.BAGGAGE_KEY, expectedBaggage);
    if (expectedSampled) {
        Tags.SAMPLING_PRIORITY.set(span, 1);
    }
    Downstream bottomDownstream = new Downstream(SERVICE_NAME, "127.0.0.1", port, Constants.TRANSPORT_HTTP, "server", null);
    Downstream topDownstream = new Downstream(SERVICE_NAME, "127.0.0.1", 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, String.format("%x", span.context().getTraceId()), expectedBaggage, 2);
}
Also used : TraceResponse(com.uber.jaeger.crossdock.api.TraceResponse) Response(javax.ws.rs.core.Response) JoinTraceRequest(com.uber.jaeger.crossdock.api.JoinTraceRequest) Span(com.uber.jaeger.Span) ObservedSpan(com.uber.jaeger.crossdock.api.ObservedSpan) Downstream(com.uber.jaeger.crossdock.api.Downstream) TraceResponse(com.uber.jaeger.crossdock.api.TraceResponse) Test(org.junit.Test)

Example 33 with Span

use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.

the class TraceBehaviorResourceTest method testJoinTraceTChannel.

@Test
public void testJoinTraceTChannel() throws Exception {
    Builder tchannelBuilder = new Builder("foo");
    tchannelBuilder.setServerPort(0);
    tchannelBuilder.setServerHost(InetAddress.getLoopbackAddress());
    TChannelServer tchannel = new TChannelServer(tchannelBuilder, behavior, server.getTracer());
    tchannel.start();
    Span span = (Span) server.getTracer().buildSpan("root").startManual();
    TracingUtils.getTraceContext().push(span);
    String expectedBaggage = "baggage-example";
    span.setBaggageItem(Constants.BAGGAGE_KEY, expectedBaggage);
    if (expectedSampled) {
        Tags.SAMPLING_PRIORITY.set(span, 1);
    }
    TraceResponse response = behavior.callDownstreamTChannel(new Downstream(SERVICE_NAME, tchannel.getChannel().getListeningHost(), String.valueOf(tchannel.getChannel().getListeningPort()), Constants.TRANSPORT_TCHANNEL, "s2", new Downstream(SERVICE_NAME, tchannel.getChannel().getListeningHost(), String.valueOf(tchannel.getChannel().getListeningPort()), Constants.TRANSPORT_TCHANNEL, "s3", null)));
    assertNotNull(response);
    validateTraceResponse(response, String.format("%x", span.context().getTraceId()), expectedBaggage, 1);
    tchannel.shutdown();
}
Also used : Builder(com.uber.tchannel.api.TChannel.Builder) TChannelServer(com.uber.jaeger.crossdock.resources.behavior.tchannel.TChannelServer) Span(com.uber.jaeger.Span) ObservedSpan(com.uber.jaeger.crossdock.api.ObservedSpan) Downstream(com.uber.jaeger.crossdock.api.Downstream) TraceResponse(com.uber.jaeger.crossdock.api.TraceResponse) Test(org.junit.Test)

Example 34 with Span

use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.

the class JerseyServerFilterTest method testOperationNameWithNakedGet.

@Test
public void testOperationNameWithNakedGet() throws Exception {
    Response response = target("stormlord/").request().get();
    assertEquals(200, response.getStatus());
    Span span = reporter.getSpans().get(0);
    assertEquals("GET:/stormlord", span.getOperationName());
    assertCache("nakedGet");
}
Also used : Response(javax.ws.rs.core.Response) Span(com.uber.jaeger.Span) Test(org.junit.Test) JerseyTest(org.glassfish.jersey.test.JerseyTest)

Aggregations

Span (com.uber.jaeger.Span)34 Test (org.junit.Test)28 SpanContext (com.uber.jaeger.SpanContext)5 ArrayList (java.util.ArrayList)5 Response (javax.ws.rs.core.Response)5 BinaryAnnotation (com.twitter.zipkin.thriftjava.BinaryAnnotation)4 ObservedSpan (com.uber.jaeger.crossdock.api.ObservedSpan)4 TraceResponse (com.uber.jaeger.crossdock.api.TraceResponse)4 Annotation (com.twitter.zipkin.thriftjava.Annotation)3 Downstream (com.uber.jaeger.crossdock.api.Downstream)3 HashMap (java.util.HashMap)3 TreeMap (java.util.TreeMap)3 AutoExpandingBufferWriteTransport (org.apache.thrift.transport.AutoExpandingBufferWriteTransport)3 Tracer (com.uber.jaeger.Tracer)2 SenderException (com.uber.jaeger.exceptions.SenderException)2 FilterIntegrationTest (com.uber.jaeger.propagation.FilterIntegrationTest)2 Batch (com.uber.jaeger.thriftjava.Batch)2 Process (com.uber.jaeger.thriftjava.Process)2 TextMap (io.opentracing.propagation.TextMap)2 URI (java.net.URI)2