Search in sources :

Example 76 with Span

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

the class TraceTest method cleanupComparator_transitiveKindComparison.

/**
 * Comparators are meant to be transitive. This exploits edge cases to fool our comparator.
 */
@Test
public void cleanupComparator_transitiveKindComparison() {
    List<Span> trace = new ArrayList<>();
    Endpoint aEndpoint = Endpoint.newBuilder().serviceName("a").build();
    Endpoint bEndpoint = Endpoint.newBuilder().serviceName("b").build();
    Span template = Span.newBuilder().traceId("a").id("a").build();
    // when there are at least 32 elements.
    for (int i = 0, length = 7; i < length; i++) {
        trace.add(template.toBuilder().shared(true).localEndpoint(bEndpoint).build());
        trace.add(template.toBuilder().kind(Kind.CLIENT).localEndpoint(bEndpoint).build());
        trace.add(template.toBuilder().localEndpoint(aEndpoint).build());
        trace.add(template);
        trace.add(template.toBuilder().kind(Kind.CLIENT).localEndpoint(aEndpoint).build());
    }
    Collections.sort(trace, Trace.CLEANUP_COMPARATOR);
    assertThat(new LinkedHashSet<>(trace)).extracting(Span::shared, Span::kind, s -> s.localServiceName()).containsExactly(tuple(null, Kind.CLIENT, "a"), tuple(null, Kind.CLIENT, "b"), tuple(null, null, null), tuple(null, null, "a"), tuple(true, null, "b"));
}
Also used : List(java.util.List) Endpoint(zipkin2.Endpoint) Assertions.tuple(org.assertj.core.api.Assertions.tuple) Arrays.asList(java.util.Arrays.asList) Kind(zipkin2.Span.Kind) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Span(zipkin2.Span) Test(org.junit.Test) Collections(java.util.Collections) LinkedHashSet(java.util.LinkedHashSet) ArrayList(java.util.ArrayList) Endpoint(zipkin2.Endpoint) ArrayList(java.util.ArrayList) Span(zipkin2.Span) Endpoint(zipkin2.Endpoint) Test(org.junit.Test)

Example 77 with Span

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

the class V1ThriftSpanWriterTest method writesEmptySpanName.

@Test
public void writesEmptySpanName() {
    Span span = Span.newBuilder().traceId("1").id("2").build();
    writer.write(span, buf);
    assertThat(bytes).containsSequence(ThriftField.TYPE_STRING, 0, 3, 0, 0, 0, // name (empty is 32 zero bits)
    0);
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 78 with Span

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

the class V1ThriftSpanWriterTest method writesEmptyAnnotationAndBinaryAnnotations.

/**
 * For finagle compatibility
 */
@Test
public void writesEmptyAnnotationAndBinaryAnnotations() {
    Span span = Span.newBuilder().traceId("1").id("2").build();
    writer.write(span, buf);
    assertThat(bytes).containsSequence(TYPE_LIST, 0, 6, TYPE_STRUCT, 0, 0, 0, // empty annotations
    0).containsSequence(TYPE_LIST, 0, 8, TYPE_STRUCT, 0, 0, 0, // empty binary annotations
    0);
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 79 with Span

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

the class InMemoryStorageTest method getTraces_byTraceIds.

@Test
public void getTraces_byTraceIds() throws IOException {
    Span trace1Span1 = Span.newBuilder().traceId("1").id("1").name("root").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).timestamp(TODAY * 1000).build();
    Span trace1Span2 = Span.newBuilder().traceId("1").parentId("1").id("2").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).timestamp(TODAY * 1000).build();
    Span trace2Span1 = Span.newBuilder().traceId("2").id("1").name("root").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).timestamp(TODAY * 1000).build();
    Span trace2Span2 = Span.newBuilder().traceId("2").parentId("1").id("2").localEndpoint(Endpoint.newBuilder().serviceName("app").build()).timestamp(TODAY * 1000).build();
    storage.accept(asList(trace1Span1, trace1Span2, trace2Span1, trace2Span2)).execute();
    assertThat(storage.getTraces(asList("1", "2")).execute()).containsExactly(asList(trace1Span1, trace1Span2), asList(trace2Span1, trace2Span2));
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 80 with Span

use of io.opencensus.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)

Aggregations

Span (zipkin2.Span)290 Test (org.junit.Test)192 Test (org.junit.jupiter.api.Test)67 TestObjects.newClientSpan (zipkin2.TestObjects.newClientSpan)41 Endpoint (zipkin2.Endpoint)37 ArrayList (java.util.ArrayList)24 V1Span (zipkin2.v1.V1Span)17 List (java.util.List)14 AggregateCall (zipkin2.internal.AggregateCall)13 TraceSpan (com.google.devtools.cloudtrace.v1.TraceSpan)12 Arrays.asList (java.util.Arrays.asList)9 Map (java.util.Map)9 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)9 Span (com.google.devtools.cloudtrace.v2.Span)8 LinkedHashMap (java.util.LinkedHashMap)8 Trace (com.google.devtools.cloudtrace.v1.Trace)7 Span (zipkin2.proto3.Span)7 SpanData (io.opencensus.trace.export.SpanData)6 SpanCustomizer (brave.SpanCustomizer)5 IOException (java.io.IOException)5