Search in sources :

Example 26 with Span

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);
}
Also used : AutoExpandingBufferWriteTransport(org.apache.thrift.transport.AutoExpandingBufferWriteTransport) ArrayList(java.util.ArrayList) Span(com.uber.jaeger.Span) Test(org.junit.Test)

Example 27 with Span

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"));
}
Also used : Span(com.uber.jaeger.Span) Test(org.junit.Test)

Example 28 with Span

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());
}
Also used : Batch(com.uber.jaeger.thriftjava.Batch) Span(com.uber.jaeger.Span) Test(org.junit.Test)

Example 29 with Span

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;
    }
}
Also used : SenderException(com.uber.jaeger.exceptions.SenderException) Span(com.uber.jaeger.Span) Test(org.junit.Test)

Example 30 with Span

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;
}
Also used : AutoExpandingBufferWriteTransport(org.apache.thrift.transport.AutoExpandingBufferWriteTransport) Agent(com.uber.jaeger.agent.thrift.Agent) ArrayList(java.util.ArrayList) Process(com.uber.jaeger.thriftjava.Process) TCompactProtocol(org.apache.thrift.protocol.TCompactProtocol) Span(com.uber.jaeger.Span) Batch(com.uber.jaeger.thriftjava.Batch)

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