use of io.opencensus.trace.export.SpanData in project instrumentation-java by census-instrumentation.
the class SpanBuilderImplTest method startSpanNullParent.
@Test
public void startSpanNullParent() {
RecordEventsSpanImpl span = (RecordEventsSpanImpl) SpanBuilderImpl.createWithParent(SPAN_NAME, null, spanBuilderOptions).setRecordEvents(true).startSpan();
assertThat(span.getContext().isValid()).isTrue();
assertThat(span.getOptions().contains(Options.RECORD_EVENTS)).isTrue();
assertThat(span.getContext().getTraceOptions().isSampled()).isTrue();
SpanData spanData = span.toSpanData();
assertThat(spanData.getParentSpanId()).isNull();
assertThat(spanData.getHasRemoteParent()).isNull();
assertThat(spanData.getStartTimestamp()).isEqualTo(testClock.now());
assertThat(spanData.getName()).isEqualTo(SPAN_NAME);
}
use of io.opencensus.trace.export.SpanData in project instrumentation-java by census-instrumentation.
the class InProcessSampledSpanStoreImplTest method getLatencySampledSpans.
@Test
public void getLatencySampledSpans() {
RecordEventsSpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(20)));
span.end();
Collection<SpanData> samples = sampleStore.getLatencySampledSpans(LatencyFilter.create(REGISTERED_SPAN_NAME, TimeUnit.MICROSECONDS.toNanos(15), TimeUnit.MICROSECONDS.toNanos(25), 0));
assertThat(samples.size()).isEqualTo(1);
assertThat(samples.contains(span.toSpanData())).isTrue();
}
use of io.opencensus.trace.export.SpanData in project instrumentation-java by census-instrumentation.
the class InProcessSampledSpanStoreImplTest method ignoreNegativeSpanLatency.
@Test
public void ignoreNegativeSpanLatency() {
RecordEventsSpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, (int) TimeUnit.MICROSECONDS.toNanos(-20)));
span.end();
Collection<SpanData> samples = sampleStore.getLatencySampledSpans(LatencyFilter.create(REGISTERED_SPAN_NAME, 0, Long.MAX_VALUE, 0));
assertThat(samples.size()).isEqualTo(0);
}
use of io.opencensus.trace.export.SpanData in project instrumentation-java by census-instrumentation.
the class InProcessSampledSpanStoreImplTest method getErrorSampledSpans_MaxSpansToReturn.
@Test
public void getErrorSampledSpans_MaxSpansToReturn() {
RecordEventsSpanImpl span1 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span1.end(EndSpanOptions.builder().setStatus(Status.CANCELLED).build());
// Advance time to allow other spans to be sampled.
testClock.advanceTime(Duration.create(5, 0));
RecordEventsSpanImpl span2 = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span2.end(EndSpanOptions.builder().setStatus(Status.CANCELLED).build());
Collection<SpanData> samples = sampleStore.getErrorSampledSpans(ErrorFilter.create(REGISTERED_SPAN_NAME, CanonicalCode.CANCELLED, 1));
assertThat(samples.size()).isEqualTo(1);
// No order guaranteed so one of the spans should be in the list.
assertThat(samples).containsAnyOf(span1.toSpanData(), span2.toSpanData());
}
use of io.opencensus.trace.export.SpanData in project instrumentation-java by census-instrumentation.
the class InProcessSampledSpanStoreImplTest method getErrorSampledSpans.
@Test
public void getErrorSampledSpans() {
RecordEventsSpanImpl span = createSampledSpan(REGISTERED_SPAN_NAME);
testClock.advanceTime(Duration.create(0, 1000));
span.end(EndSpanOptions.builder().setStatus(Status.CANCELLED).build());
Collection<SpanData> samples = sampleStore.getErrorSampledSpans(ErrorFilter.create(REGISTERED_SPAN_NAME, CanonicalCode.CANCELLED, 0));
assertThat(samples.size()).isEqualTo(1);
assertThat(samples.contains(span.toSpanData())).isTrue();
}
Aggregations