use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class RemoteReporterTest method testRemoteReporterReport.
@Test
public void testRemoteReporterReport() throws Exception {
Span span = (Span) tracer.buildSpan("raza").startManual();
reporter.report(span);
// do sleep until automatic flush happens on 'reporter'
// added 20ms on top of 'flushInterval' to avoid corner cases
await().with().pollInterval(1, TimeUnit.MILLISECONDS).atMost(flushInterval + 20, TimeUnit.MILLISECONDS).until(() -> sender.getReceived().size() > 0);
List<com.uber.jaeger.thriftjava.Span> received = sender.getReceived();
assertEquals(1, received.size());
}
use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class RemoteReporterTest method testRemoteReporterFlushesOnClose.
@Test
public void testRemoteReporterFlushesOnClose() throws Exception {
int numberOfSpans = 100;
for (int i = 0; i < numberOfSpans; i++) {
Span span = (Span) tracer.buildSpan("raza").startManual();
reporter.report(span);
}
reporter.close();
assertEquals(0, sender.getAppended().size());
assertEquals(numberOfSpans, sender.getFlushed().size());
assertEquals(100, metricsFactory.getCounter("jaeger:started_spans", "sampled=y"));
assertEquals(100, metricsFactory.getCounter("jaeger:reporter_spans", "result=ok"));
assertEquals(100, metricsFactory.getCounter("jaeger:traces", "sampled=y,state=started"));
}
use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class UdpSenderTest method testAppend.
@Test
public void testAppend() throws Exception {
// find size of the initial span
Span jaegerSpan = (Span) tracer.buildSpan("raza").startManual();
com.uber.jaeger.thriftjava.Span span = JaegerThriftSpanConverter.convertSpan(jaegerSpan);
Process process = new Process(tracer.getServiceName()).setTags(JaegerThriftSpanConverter.buildTags(tracer.tags()));
AutoExpandingBufferWriteTransport memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
process.write(new TCompactProtocol(memoryTransport));
int processSize = memoryTransport.getPos();
memoryTransport.reset();
span.write(new TCompactProtocol((memoryTransport)));
int spanSize = memoryTransport.getPos();
// create a sender thats a multiple of the span size (accounting for span overhead)
// this allows us to test the boundary conditions of writing spans.
int expectedNumSpans = 11;
int maxPacketSize = (spanSize * expectedNumSpans) + sender.EMIT_BATCH_OVERHEAD + processSize;
int maxPacketSizeLeft = maxPacketSize - sender.EMIT_BATCH_OVERHEAD - processSize;
// add enough spans to be under buffer limit
sender = new UdpSender(destHost, destPort, maxPacketSize);
while (spanSize < maxPacketSizeLeft) {
sender.append(jaegerSpan);
maxPacketSizeLeft -= spanSize;
}
// add a span that overflows the limit to hit the last branch
int result = sender.append(jaegerSpan);
assertEquals(expectedNumSpans, result);
}
use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class TraceBehaviorResource method startTrace.
@POST
@Path("start_trace")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public TraceResponse startTrace(StartTraceRequest startRequest) throws Exception {
log.info("http:start_trace request: {}", mapper.writeValueAsString(startRequest));
// TODO should be starting new root span
Span span = (Span) TracingUtils.getTraceContext().getCurrentSpan();
String baggage = startRequest.getBaggage();
span.setBaggageItem(Constants.BAGGAGE_KEY, baggage);
if (startRequest.isSampled()) {
Tags.SAMPLING_PRIORITY.set(span, 1);
}
TraceResponse response = behavior.prepareResponse(startRequest.getDownstream());
log.info("http:start_trace response: {}", mapper.writeValueAsString(response));
return response;
}
use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class EndToEndBehaviorResourceTest method validateSpans.
private void validateSpans(List<Span> spans, CreateTracesRequest request) {
assertEquals(request.getCount(), spans.size());
for (Span s : spans) {
assertEquals(request.getOperation(), s.getOperationName());
Map<String, Object> tags = s.getTags();
for (Map.Entry<String, String> entry : request.getTags().entrySet()) {
assertTrue(tags.containsKey(entry.getKey()));
Object value = tags.get(entry.getKey());
assertEquals(entry.getValue(), value);
}
}
}
Aggregations