Search in sources :

Example 11 with Span

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

Example 12 with Span

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

Example 13 with Span

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);
}
Also used : AutoExpandingBufferWriteTransport(org.apache.thrift.transport.AutoExpandingBufferWriteTransport) Process(com.uber.jaeger.thriftjava.Process) TCompactProtocol(org.apache.thrift.protocol.TCompactProtocol) Span(com.uber.jaeger.Span) Test(org.junit.Test)

Example 14 with Span

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;
}
Also used : Span(com.uber.jaeger.Span) 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 15 with Span

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);
        }
    }
}
Also used : Span(com.uber.jaeger.Span) HashMap(java.util.HashMap) Map(java.util.Map)

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