use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class ZipkinSenderTest method testAppend.
@Test
public void testAppend() throws Exception {
// find size of the initial span
AutoExpandingBufferWriteTransport memoryTransport = new AutoExpandingBufferWriteTransport(messageMaxBytes, 2);
Span jaegerSpan = (Span) tracer.buildSpan("raza").startManual();
com.twitter.zipkin.thriftjava.Span span = ThriftSpanConverter.convertSpan(jaegerSpan);
int expectedNumSpans = 11;
List<byte[]> spansToSend = new ArrayList<>(expectedNumSpans);
for (int i = 0; i < expectedNumSpans; i++) {
spansToSend.add(new ThriftSpanEncoder().encode(sender.backFillHostOnAnnotations(span)));
}
// 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 messageMaxBytes = sender.delegate.messageSizeInBytes(spansToSend);
sender.close();
sender = newSender(messageMaxBytes);
// add enough spans to be under buffer limit
for (int i = 0; i < expectedNumSpans - 1; i++) {
assertEquals(0, sender.append(jaegerSpan));
}
// 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 BaggageSetterTest method testBaggageNullRemoveValue.
@Test
public void testBaggageNullRemoveValue() {
when(mgr.getRestriction(SERVICE, KEY)).thenReturn(Restriction.of(true, 5));
final String value = "value";
Span originalSpan = span.setBaggageItem(KEY, value);
assertEquals(value, originalSpan.getBaggageItem(KEY));
Span child = (Span) tracer.buildSpan("some-operation").asChildOf(originalSpan).startManual();
child = child.setBaggageItem(KEY, null);
assertBaggageLogs(child, KEY, null, false, true, false);
assertNull(child.getBaggageItem(KEY));
assertEquals(2, metricsFactory.getCounter("jaeger:baggage_updates", "result=ok"));
}
use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class UdpSenderTest method testFlushSendsSpan.
@Test
public void testFlushSendsSpan() throws Exception {
// in milliseconds
int timeout = 50;
int expectedNumSpans = 1;
Span expectedSpan = (Span) tracer.buildSpan("raza").startManual();
int appendNum = sender.append(expectedSpan);
int flushNum = sender.flush();
assertEquals(appendNum, 0);
assertEquals(flushNum, 1);
Batch batch = server.getBatch(expectedNumSpans, timeout);
assertEquals(expectedNumSpans, batch.getSpans().size());
com.uber.jaeger.thriftjava.Span actualSpan = batch.getSpans().get(0);
assertEquals(expectedSpan.context().getTraceId(), actualSpan.getTraceIdLow());
assertEquals(0, actualSpan.getTraceIdHigh());
assertEquals(expectedSpan.context().getSpanId(), actualSpan.getSpanId());
assertEquals(0, actualSpan.getParentSpanId());
assertTrue(actualSpan.references.isEmpty());
assertEquals(expectedSpan.getOperationName(), actualSpan.getOperationName());
assertEquals(4, batch.getProcess().getTags().size());
assertEquals("hostname", batch.getProcess().getTags().get(0).getKey());
assertEquals("jaeger.version", batch.getProcess().getTags().get(1).getKey());
assertEquals("bar", batch.getProcess().getTags().get(2).getVStr());
assertEquals("ip", batch.getProcess().getTags().get(3).getKey());
}
use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class UdpSenderTest method testAppendSpanTooLarge.
@Test(expected = SenderException.class)
public void testAppendSpanTooLarge() throws Exception {
Span jaegerSpan = (Span) tracer.buildSpan("raza").startManual();
String msg = "";
for (int i = 0; i < 10001; i++) {
msg += ".";
jaegerSpan.log(msg);
}
try {
sender.append(jaegerSpan);
} catch (SenderException e) {
assertEquals(e.getDroppedSpanCount(), 1);
throw e;
}
}
use of com.uber.jaeger.Span in project jaeger-client-java by jaegertracing.
the class UdpSenderTest method calculateBatchOverheadDifference.
private int calculateBatchOverheadDifference(int numberOfSpans) throws Exception {
AutoExpandingBufferWriteTransport memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
Agent.Client memoryClient = new Agent.Client(new TCompactProtocol((memoryTransport)));
Span jaegerSpan = (Span) tracer.buildSpan("raza").startManual();
com.uber.jaeger.thriftjava.Span span = JaegerThriftSpanConverter.convertSpan(jaegerSpan);
List<com.uber.jaeger.thriftjava.Span> spans = new ArrayList<>();
for (int i = 0; i < numberOfSpans; i++) {
spans.add(span);
}
memoryClient.emitBatch(new Batch(new Process(SERVICE_NAME), spans));
int emitBatchOverheadMultipleSpans = memoryTransport.getPos();
memoryTransport.reset();
for (int j = 0; j < numberOfSpans; j++) {
span.write(new TCompactProtocol(memoryTransport));
}
int writeBatchOverheadMultipleSpans = memoryTransport.getPos();
return emitBatchOverheadMultipleSpans - writeBatchOverheadMultipleSpans;
}
Aggregations