Search in sources :

Example 66 with Span

use of io.opentelemetry.proto.trace.v1.Span in project zipkin by openzipkin.

the class InMemoryStorageTest method replayOverwrites.

/**
 * It should be safe to run dependency link jobs twice
 */
@Test
public void replayOverwrites() throws IOException {
    Span span = Span.newBuilder().traceId("10").id("10").name("receive").kind(Span.Kind.CONSUMER).localEndpoint(Endpoint.newBuilder().serviceName("app").build()).remoteEndpoint(Endpoint.newBuilder().serviceName("kafka").build()).timestamp(TODAY * 1000).build();
    storage.accept(asList(span)).execute();
    storage.accept(asList(span)).execute();
    assertThat(storage.getDependencies(TODAY + 1000L, TODAY).execute()).containsOnly(DependencyLink.newBuilder().parent("kafka").child("app").callCount(1L).build());
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 67 with Span

use of io.opentelemetry.proto.trace.v1.Span in project zipkin by openzipkin.

the class InMemoryStorageTest method getSpanNames_skipsNullSpanName.

@Test
public void getSpanNames_skipsNullSpanName() throws IOException {
    Span span1 = Span.newBuilder().traceId("1").id("1").name("root").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).timestamp(TODAY * 1000).build();
    Span span2 = Span.newBuilder().traceId("1").parentId("1").id("2").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).timestamp(TODAY * 1000).build();
    storage.accept(asList(span1, span2)).execute();
    assertThat(storage.getSpanNames("app").execute()).containsOnly("root");
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 68 with Span

use of io.opentelemetry.proto.trace.v1.Span in project zipkin by openzipkin.

the class InMemoryStorageTest method getTagsAndThenValues.

@Test
public void getTagsAndThenValues() throws IOException {
    Span span1 = Span.newBuilder().traceId("1").id("1").name("root").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).putTag("environment", "dev").putTag("http.method", "GET").timestamp(TODAY * 1000).build();
    Span span2 = Span.newBuilder().traceId("1").parentId("1").id("2").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).putTag("environment", "dev").putTag("http.method", "POST").putTag("http.path", "/users").timestamp(TODAY * 1000).build();
    Span span3 = Span.newBuilder().traceId("2").id("3").name("root").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).putTag("environment", "dev").putTag("http.method", "GET").timestamp(TODAY * 1000).build();
    Span span4 = Span.newBuilder().traceId("2").parentId("3").id("4").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).putTag("environment", "dev").putTag("http.method", "POST").putTag("http.path", "/users").timestamp(TODAY * 1000).build();
    storage.accept(asList(span1, span2, span3, span4)).execute();
    assertThat(storage.getKeys().execute()).containsOnlyOnce("http.path");
    assertThat(storage.getValues("http.path").execute()).containsOnlyOnce("/users");
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 69 with Span

use of io.opentelemetry.proto.trace.v1.Span in project zipkin by openzipkin.

the class SpanNodeTest method build_headless.

@Test
public void build_headless() {
    Span s2 = Span.newBuilder().traceId("a").parentId("a").id("b").name("s2").build();
    Span s3 = Span.newBuilder().traceId("a").parentId("a").id("c").name("s3").build();
    Span s4 = Span.newBuilder().traceId("a").parentId("a").id("d").name("s4").build();
    SpanNode root = new SpanNode.Builder(logger).build(asList(s2, s3, s4));
    assertThat(root.span()).isNull();
    assertThat(root.children()).extracting(SpanNode::span).containsExactly(s2, s3, s4);
    assertThat(messages).containsExactly("building trace tree: traceId=000000000000000a", "substituting dummy node for missing root span: traceId=000000000000000a");
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 70 with Span

use of io.opentelemetry.proto.trace.v1.Span in project zipkin by openzipkin.

the class SpanNodeTest method build_noChildLeftBehind.

@Test
public void build_noChildLeftBehind() {
    List<Span> spans = asList(Span.newBuilder().traceId("a").id("b").name("root-0").build(), Span.newBuilder().traceId("a").parentId("b").id("c").name("child-0").build(), Span.newBuilder().traceId("a").parentId("b").id("d").name("child-1").build(), Span.newBuilder().traceId("a").id("e").name("lost-0").build(), Span.newBuilder().traceId("a").id("f").name("lost-1").build());
    int treeSize = 0;
    SpanNode tree = new SpanNode.Builder(logger).build(spans);
    Iterator<SpanNode> iter = tree.traverse();
    while (iter.hasNext()) {
        iter.next();
        treeSize++;
    }
    assertThat(treeSize).isEqualTo(spans.size());
    assertThat(messages).containsExactly("building trace tree: traceId=000000000000000a", "attributing span missing parent to root: traceId=000000000000000a, rootSpanId=000000000000000b, spanId=000000000000000e", "attributing span missing parent to root: traceId=000000000000000a, rootSpanId=000000000000000b, spanId=000000000000000f");
}
Also used : Span(zipkin2.Span) Endpoint(zipkin2.Endpoint) Test(org.junit.Test)

Aggregations

Span (zipkin2.Span)335 Test (org.junit.Test)237 Test (org.junit.jupiter.api.Test)84 ArrayList (java.util.ArrayList)47 Endpoint (zipkin2.Endpoint)43 TestObjects.newClientSpan (zipkin2.TestObjects.newClientSpan)41 Span (io.opentelemetry.proto.trace.v1.Span)35 List (java.util.List)23 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)20 V1Span (zipkin2.v1.V1Span)17 Span (com.google.devtools.cloudtrace.v2.Span)16 Map (java.util.Map)14 AggregateCall (zipkin2.internal.AggregateCall)13 ResourceSpans (io.opentelemetry.proto.trace.v1.ResourceSpans)11 Arrays.asList (java.util.Arrays.asList)11 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)11 Annotation (wavefront.report.Annotation)11 Trace (com.google.devtools.cloudtrace.v1.Trace)10 TraceSpan (com.google.devtools.cloudtrace.v1.TraceSpan)10 AttributeValue (com.google.devtools.cloudtrace.v2.AttributeValue)10