Search in sources :

Example 6 with TraceResponse

use of com.uber.jaeger.crossdock.api.TraceResponse in project jaeger-client-java by jaegertracing.

the class TraceBehaviorResource method joinTrace.

@POST
@Path("join_trace")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public TraceResponse joinTrace(JoinTraceRequest joinRequest) throws Exception {
    log.info("http:join_trace request: {}", mapper.writeValueAsString(joinRequest));
    TraceResponse response = behavior.prepareResponse(joinRequest.getDownstream());
    log.info("http:join_trace response: {}", mapper.writeValueAsString(response));
    return response;
}
Also used : TraceResponse(com.uber.jaeger.crossdock.api.TraceResponse) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces)

Example 7 with TraceResponse

use of com.uber.jaeger.crossdock.api.TraceResponse 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 8 with TraceResponse

use of com.uber.jaeger.crossdock.api.TraceResponse 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 9 with TraceResponse

use of com.uber.jaeger.crossdock.api.TraceResponse in project jaeger-client-java by jaegertracing.

the class TraceBehaviorResourceTest method validateTraceResponse.

private void validateTraceResponse(TraceResponse response, String expectedTraceId, String expectedBaggage, int expectedDownstream) {
    ObservedSpan span = response.getSpan();
    assertEquals(expectedTraceId, span.getTraceId());
    assertEquals(expectedBaggage, span.getBaggage());
    assertEquals(expectedSampled, span.isSampled());
    TraceResponse downstream = response.getDownstream();
    if (expectedDownstream > 0) {
        assertNotNull(downstream);
        validateTraceResponse(downstream, expectedTraceId, expectedBaggage, expectedDownstream - 1);
    } else {
        assertNull(downstream);
    }
}
Also used : ObservedSpan(com.uber.jaeger.crossdock.api.ObservedSpan) TraceResponse(com.uber.jaeger.crossdock.api.TraceResponse)

Aggregations

TraceResponse (com.uber.jaeger.crossdock.api.TraceResponse)9 Span (com.uber.jaeger.Span)4 ObservedSpan (com.uber.jaeger.crossdock.api.ObservedSpan)4 Downstream (com.uber.jaeger.crossdock.api.Downstream)3 Response (javax.ws.rs.core.Response)3 Test (org.junit.Test)3 JoinTraceRequest (com.uber.jaeger.crossdock.api.JoinTraceRequest)2 Consumes (javax.ws.rs.Consumes)2 POST (javax.ws.rs.POST)2 Path (javax.ws.rs.Path)2 Produces (javax.ws.rs.Produces)2 StartTraceRequest (com.uber.jaeger.crossdock.api.StartTraceRequest)1 TChannelServer (com.uber.jaeger.crossdock.resources.behavior.tchannel.TChannelServer)1 JoinTraceRequest (com.uber.jaeger.crossdock.thrift.JoinTraceRequest)1 TracedService (com.uber.jaeger.crossdock.thrift.TracedService)1 Builder (com.uber.tchannel.api.TChannel.Builder)1 ThriftResponse (com.uber.tchannel.messages.ThriftResponse)1