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;
}
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);
}
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();
}
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);
}
}
Aggregations