Search in sources :

Example 16 with InMemoryReporter

use of com.uber.jaeger.reporters.InMemoryReporter in project jaeger-client-java by jaegertracing.

the class ThriftSpanConverterTest method testTracerTags.

@Test
@UseDataProvider("dataProviderTracerTags")
public void testTracerTags(SpanType spanType, Map<String, String> expectedTags) throws Exception {
    InMemoryReporter spanReporter = new InMemoryReporter();
    Tracer tracer = new Tracer.Builder("x", spanReporter, new ConstSampler(true)).withZipkinSharedRpcSpan().withTag("tag.str", "y").withTag("tag.bool", true).withTag("tag.num", 1).build();
    Span span = (Span) tracer.buildSpan("root").startManual();
    if (spanType == SpanType.CHILD) {
        span = (Span) tracer.buildSpan("child").asChildOf(span).startManual();
    } else if (spanType == SpanType.RPC_SERVER) {
        span = (Span) tracer.buildSpan("rpc-server").asChildOf(span).withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER).startManual();
    }
    com.twitter.zipkin.thriftjava.Span zipkinSpan = ThriftSpanConverter.convertSpan(span);
    List<BinaryAnnotation> annotations = zipkinSpan.getBinary_annotations();
    for (Map.Entry<String, String> entry : expectedTags.entrySet()) {
        String key = entry.getKey();
        Object expectedValue = entry.getValue();
        BinaryAnnotation anno = findBinaryAnnotation(annotations, key);
        if (expectedValue.equals(UNDEF)) {
            assertNull("Not expecting " + key + " for " + spanType, anno);
        } else if (expectedValue.equals(ANY)) {
            assertEquals(key, anno.getKey());
        } else {
            String actualValue = new String(anno.getValue(), StandardCharsets.UTF_8);
            assertEquals("Expecting " + key + " for " + spanType, expectedValue, actualValue);
        }
    }
}
Also used : InMemoryReporter(com.uber.jaeger.reporters.InMemoryReporter) Tracer(com.uber.jaeger.Tracer) Span(com.uber.jaeger.Span) BinaryAnnotation(com.twitter.zipkin.thriftjava.BinaryAnnotation) ConstSampler(com.uber.jaeger.samplers.ConstSampler) HashMap(java.util.HashMap) Map(java.util.Map) TextMap(io.opentracing.propagation.TextMap) TreeMap(java.util.TreeMap) Test(org.junit.Test) UseDataProvider(com.tngtech.java.junit.dataprovider.UseDataProvider)

Example 17 with InMemoryReporter

use of com.uber.jaeger.reporters.InMemoryReporter in project jaeger-client-java by jaegertracing.

the class PropagationTest method testIgnoreActiveSpan.

@Test
public void testIgnoreActiveSpan() {
    InMemoryReporter reporter = new InMemoryReporter();
    Tracer tracer = new Tracer.Builder("test", reporter, new ConstSampler(true)).build();
    try (Scope parent = tracer.buildSpan("parent").startActive(true)) {
        tracer.buildSpan("child").ignoreActiveSpan().startActive(true).close();
    }
    assertEquals(2, reporter.getSpans().size());
    Span childSpan = reporter.getSpans().get(0);
    Span parentSpan = reporter.getSpans().get(1);
    assertTrue(reporter.getSpans().get(0).getReferences().isEmpty());
    assertTrue(reporter.getSpans().get(1).getReferences().isEmpty());
    assertNotEquals(parentSpan.context().getTraceId(), childSpan.context().getTraceId());
    assertEquals(0, childSpan.context().getParentId());
}
Also used : InMemoryReporter(com.uber.jaeger.reporters.InMemoryReporter) Scope(io.opentracing.Scope) ConstSampler(com.uber.jaeger.samplers.ConstSampler) Test(org.junit.Test)

Example 18 with InMemoryReporter

use of com.uber.jaeger.reporters.InMemoryReporter in project jaeger-client-java by jaegertracing.

the class PropagationTest method testNoAutoRefWithExistingRefs.

@Test
public void testNoAutoRefWithExistingRefs() {
    InMemoryReporter reporter = new InMemoryReporter();
    Tracer tracer = new Tracer.Builder("test", reporter, new ConstSampler(true)).build();
    io.opentracing.Span initialSpan = tracer.buildSpan("initial").start();
    try (Scope parent = tracer.buildSpan("parent").startActive(true)) {
        tracer.buildSpan("child").asChildOf(initialSpan.context()).startActive(true).close();
    }
    initialSpan.finish();
    assertEquals(3, reporter.getSpans().size());
    Span childSpan = reporter.getSpans().get(0);
    Span parentSpan = reporter.getSpans().get(1);
    Span initSpan = reporter.getSpans().get(2);
    assertTrue(initSpan.getReferences().isEmpty());
    assertTrue(parentSpan.getReferences().isEmpty());
    assertEquals(initSpan.context().getTraceId(), childSpan.context().getTraceId());
    assertEquals(initSpan.context().getSpanId(), childSpan.context().getParentId());
    assertEquals(0, initSpan.context().getParentId());
    assertEquals(0, parentSpan.context().getParentId());
}
Also used : InMemoryReporter(com.uber.jaeger.reporters.InMemoryReporter) Scope(io.opentracing.Scope) ConstSampler(com.uber.jaeger.samplers.ConstSampler) Test(org.junit.Test)

Example 19 with InMemoryReporter

use of com.uber.jaeger.reporters.InMemoryReporter in project jaeger-client-java by jaegertracing.

the class PropagationTest method testActiveSpanAutoFinishOnClose.

@Test
public void testActiveSpanAutoFinishOnClose() {
    InMemoryReporter reporter = new InMemoryReporter();
    Tracer tracer = new Tracer.Builder("test", reporter, new ConstSampler(true)).build();
    tracer.buildSpan("parent").startActive(true).close();
    assertEquals(1, reporter.getSpans().size());
}
Also used : InMemoryReporter(com.uber.jaeger.reporters.InMemoryReporter) ConstSampler(com.uber.jaeger.samplers.ConstSampler) Test(org.junit.Test)

Example 20 with InMemoryReporter

use of com.uber.jaeger.reporters.InMemoryReporter in project jaeger-client-java by jaegertracing.

the class PropagationTest method testCustomScopeManager.

@Test
public void testCustomScopeManager() {
    Scope scope = mock(Scope.class);
    Tracer tracer = new Tracer.Builder("test", new InMemoryReporter(), new ConstSampler(true)).withScopeManager(new ScopeManager() {

        @Override
        public Scope activate(io.opentracing.Span span, boolean finishSpanOnClose) {
            return scope;
        }

        @Override
        public Scope active() {
            return scope;
        }
    }).build();
    assertEquals(scope, tracer.scopeManager().active());
}
Also used : InMemoryReporter(com.uber.jaeger.reporters.InMemoryReporter) ScopeManager(io.opentracing.ScopeManager) Scope(io.opentracing.Scope) ConstSampler(com.uber.jaeger.samplers.ConstSampler) Test(org.junit.Test)

Aggregations

InMemoryReporter (com.uber.jaeger.reporters.InMemoryReporter)30 ConstSampler (com.uber.jaeger.samplers.ConstSampler)26 Test (org.junit.Test)19 Before (org.junit.Before)10 Tracer (com.uber.jaeger.Tracer)7 Metrics (com.uber.jaeger.metrics.Metrics)5 Scope (io.opentracing.Scope)5 Builder (com.uber.jaeger.Tracer.Builder)4 InMemoryMetricsFactory (com.uber.jaeger.metrics.InMemoryMetricsFactory)4 InMemoryStatsReporter (com.uber.jaeger.metrics.InMemoryStatsReporter)3 TextMap (io.opentracing.propagation.TextMap)3 HashMap (java.util.HashMap)3 Tracer (io.opentracing.Tracer)2 UseDataProvider (com.tngtech.java.junit.dataprovider.UseDataProvider)1 BinaryAnnotation (com.twitter.zipkin.thriftjava.BinaryAnnotation)1 Span (com.uber.jaeger.Span)1 DefaultBaggageRestrictionManager (com.uber.jaeger.baggage.DefaultBaggageRestrictionManager)1 EndToEndBehavior (com.uber.jaeger.crossdock.resources.behavior.EndToEndBehavior)1 ClientFilter (com.uber.jaeger.filters.jaxrs2.ClientFilter)1 Sampler (com.uber.jaeger.samplers.Sampler)1