Search in sources :

Example 66 with Span

use of com.google.devtools.cloudtrace.v2.Span in project zipkin by openzipkin.

the class ElasticsearchSpanConsumer method indexSpans.

void indexSpans(BulkSpanIndexer indexer, List<Span> spans) {
    for (Span span : spans) {
        // which index to store this span into
        final long indexTimestamp;
        if (span.timestampAsLong() != 0L) {
            indexTimestamp = span.timestampAsLong() / 1000L;
        } else if (!span.annotations().isEmpty()) {
            // guessTimestamp is made for determining the span's authoritative timestamp. When choosing
            // the index bucket, any annotation is better than using current time.
            indexTimestamp = span.annotations().get(0).timestamp() / 1000L;
        } else {
            indexTimestamp = System.currentTimeMillis();
        }
        indexer.add(indexTimestamp, span);
        if (searchEnabled && !span.tags().isEmpty()) {
            indexer.addAutocompleteValues(indexTimestamp, span);
        }
    }
}
Also used : Span(zipkin2.Span)

Example 67 with Span

use of com.google.devtools.cloudtrace.v2.Span in project zipkin by openzipkin.

the class ITEnsureIndexTemplate method createZipkinIndexTemplate_getTraces_returnsSuccess.

@Test
void createZipkinIndexTemplate_getTraces_returnsSuccess(TestInfo testInfo) throws Exception {
    String testSuffix = testSuffix(testInfo);
    storage = newStorageBuilder(testInfo).templatePriority(10).build();
    try {
        // Delete all templates in order to create the "catch-all" index template, because
        // ES does not allow multiple index templates of the same index_patterns and priority
        http(DELETE, "/_template/*");
        setUpCatchAllTemplate();
        // Implicitly creates an index template
        checkStorage();
        // Get all templates. We don't assert on this at the moment. This is for logging on ES_DEBUG.
        http(GET, "/_template");
        // Now, add a span, which should be indexed differently than default.
        Span span = spanBuilder(testSuffix).putTag("queryTest", "ok").build();
        accept(asList(span));
        // Assert that Zipkin's templates work and source is returned
        assertGetTracesReturns(requestBuilder().parseAnnotationQuery("queryTest=" + span.tags().get("queryTest")).build(), asList(span));
    } finally {
        // Delete "catch-all" index template so it does not interfere with any other test
        http(DELETE, catchAllIndexPath());
    }
}
Also used : Span(zipkin2.Span) Test(org.junit.jupiter.api.Test)

Example 68 with Span

use of com.google.devtools.cloudtrace.v2.Span in project zipkin by openzipkin.

the class BulkIndexWriterTest method spanSearchFields_addsTimestampFieldWhenNoTags.

@Test
public void spanSearchFields_addsTimestampFieldWhenNoTags() {
    Span span = Span.newBuilder().traceId("20").id("22").name("").parentId("21").timestamp(1000L).localEndpoint(FRONTEND).kind(Kind.CLIENT).build();
    BulkIndexWriter.SPAN.writeDocument(span, buffer);
    assertThat(buffer.buffer().toString(StandardCharsets.UTF_8)).startsWith("{\"timestamp_millis\":1,\"traceId\":");
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 69 with Span

use of com.google.devtools.cloudtrace.v2.Span in project zipkin by openzipkin.

the class BulkIndexWriterTest method spanSearchFields_addsQueryFieldForTags.

@Test
public void spanSearchFields_addsQueryFieldForTags() {
    Span span = Span.newBuilder().traceId("20").id("22").parentId("21").localEndpoint(FRONTEND).putTag("\"foo", "\"bar").build();
    BulkIndexWriter.SPAN.writeDocument(span, buffer);
    assertThat(buffer.buffer().toString(StandardCharsets.UTF_8)).startsWith("{\"_q\":[\"\\\"foo\",\"\\\"foo=\\\"bar\"],\"traceId");
}
Also used : Span(zipkin2.Span) Test(org.junit.Test)

Example 70 with Span

use of com.google.devtools.cloudtrace.v2.Span in project zipkin by openzipkin.

the class BulkIndexWriterTest method spanSearchFields_readableByNormalJsonCodec.

@Test
public void spanSearchFields_readableByNormalJsonCodec() {
    Span span = Span.newBuilder().traceId("20").id("20").name("get").timestamp(TODAY * 1000).build();
    BulkIndexWriter.SPAN.writeDocument(span, buffer);
    assertThat(SpanBytesDecoder.JSON_V2.decodeOne(ByteBufUtil.getBytes(buffer.buffer()))).isEqualTo(// ignores timestamp_millis field
    span);
}
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