public void StartChildSpan_SampledLinkedParent() { ISpan rootSpanUnsampled = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions) .SetSampler(Samplers.NeverSample) .StartSpan(); Assert.False(rootSpanUnsampled.Context.TraceOptions.IsSampled); ISpan rootSpanSampled = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions) .SetSampler(Samplers.AlwaysSample) .StartSpan(); Assert.True(rootSpanSampled.Context.TraceOptions.IsSampled); // Sampled because the linked parent is sampled. ISpan childSpan = SpanBuilder.CreateWithParent(SPAN_NAME, rootSpanUnsampled, spanBuilderOptions) .SetParentLinks(new List <ISpan>() { rootSpanSampled }) .StartSpan(); Assert.True(childSpan.Context.IsValid); Assert.Equal(rootSpanUnsampled.Context.TraceId, childSpan.Context.TraceId); Assert.True(childSpan.Context.TraceOptions.IsSampled); }
public void StartRootSpan_WithoutSpecifiedSampler() { // Apply default sampler (always true in the tests) for root spans. ISpan rootSpan = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions).StartSpan(); Assert.True(rootSpan.Context.IsValid); Assert.True(rootSpan.Context.TraceOptions.IsSampled); }
public void StartSpanNullParentNoRecordOptions() { ISpan span = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions) .SetSampler(Samplers.NeverSample) .StartSpan(); Assert.True(span.Context.IsValid); Assert.False(span.Options.HasFlag(SpanOptions.RECORD_EVENTS)); Assert.False(span.Context.TraceOptions.IsSampled); }
public void StartRootSpan_WithSpecifiedSampler() { // Apply given sampler before default sampler for root spans. ISpan rootSpan = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions) .SetSampler(Samplers.NeverSample) .StartSpan(); Assert.True(rootSpan.Context.IsValid); Assert.False(rootSpan.Context.TraceOptions.IsSampled); }
public void StartSpanNullParent() { ISpan span = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions).StartSpan(); Assert.True(span.Context.IsValid); Assert.True(span.Options.HasFlag(SpanOptions.RECORD_EVENTS)); Assert.True(span.Context.TraceOptions.IsSampled); ISpanData spanData = ((Span)span).ToSpanData(); Assert.Null(spanData.ParentSpanId); Assert.False(spanData.HasRemoteParent); Assert.Equal(testClock.Now, spanData.StartTimestamp); Assert.Equal(SPAN_NAME, spanData.Name); }
public void StartSpanNullParent() { ISpan span = SpanBuilder.CreateWithParent(SPAN_NAME, SpanKind.Internal, null, spanBuilderOptions).StartSpan(); Assert.True(span.Context.IsValid); Assert.True(span.Options.HasFlag(SpanOptions.RecordEvents)); Assert.True(span.Context.TraceOptions.IsSampled); ISpanData spanData = ((Span)span).ToSpanData(); Assert.Null(spanData.ParentSpanId); Assert.False(spanData.HasRemoteParent); Assert.InRange(spanData.StartTimestamp, Timestamp.FromDateTimeOffset(DateTimeOffset.Now).AddDuration(Duration.Create(-1, 0)), Timestamp.FromDateTimeOffset(DateTimeOffset.Now).AddDuration(Duration.Create(1, 0))); Assert.Equal(SPAN_NAME, spanData.Name); }
public void StartSpanNullParentWithRecordEvents() { ISpan span = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions) .SetSampler(Samplers.NeverSample) .SetRecordEvents(true) .StartSpan(); Assert.True(span.Context.IsValid); Assert.True(span.Options.HasFlag(SpanOptions.RECORD_EVENTS)); Assert.False(span.Context.TraceOptions.IsSampled); ISpanData spanData = ((Span)span).ToSpanData(); Assert.Null(spanData.ParentSpanId); Assert.False(spanData.HasRemoteParent); }
public void StartChildSpan_WithoutSpecifiedSampler() { ISpan rootSpan = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions) .SetSampler(Samplers.NeverSample) .StartSpan(); Assert.True(rootSpan.Context.IsValid); Assert.False(rootSpan.Context.TraceOptions.IsSampled); // Don't apply the default sampler (always true) for child spans. ISpan childSpan = SpanBuilder.CreateWithParent(SPAN_NAME, rootSpan, spanBuilderOptions).StartSpan(); Assert.True(childSpan.Context.IsValid); Assert.Equal(rootSpan.Context.TraceId, childSpan.Context.TraceId); Assert.False(childSpan.Context.TraceOptions.IsSampled); }
public void StartChildSpan() { ISpan rootSpan = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions).StartSpan(); Assert.True(rootSpan.Context.IsValid); Assert.True(rootSpan.Options.HasFlag(SpanOptions.RECORD_EVENTS)); Assert.True(rootSpan.Context.TraceOptions.IsSampled); Assert.False(((Span)rootSpan).ToSpanData().HasRemoteParent); ISpan childSpan = SpanBuilder.CreateWithParent(SPAN_NAME, rootSpan, spanBuilderOptions).StartSpan(); Assert.True(childSpan.Context.IsValid); Assert.Equal(rootSpan.Context.TraceId, childSpan.Context.TraceId); Assert.Equal(rootSpan.Context.SpanId, ((Span)childSpan).ToSpanData().ParentSpanId); Assert.False(((Span)childSpan).ToSpanData().HasRemoteParent); Assert.Equal(((Span)rootSpan).TimestampConverter, ((Span)childSpan).TimestampConverter); }
public void StartRemoteChildSpan_WithoutSpecifiedSampler() { ISpan rootSpan = SpanBuilder.CreateWithParent(SPAN_NAME, null, spanBuilderOptions) .SetSampler(Samplers.NeverSample) .StartSpan(); Assert.True(rootSpan.Context.IsValid); Assert.False(rootSpan.Context.TraceOptions.IsSampled); // Apply default sampler (always true in the tests) for spans with remote parent. ISpan childSpan = SpanBuilder.CreateWithRemoteParent(SPAN_NAME, rootSpan.Context, spanBuilderOptions) .StartSpan(); Assert.True(childSpan.Context.IsValid); Assert.Equal(rootSpan.Context.TraceId, childSpan.Context.TraceId); Assert.True(childSpan.Context.TraceOptions.IsSampled); }
public void StartChildSpan_WithSpecifiedSampler() { ISpan rootSpan = SpanBuilder.CreateWithParent(SPAN_NAME, SpanKind.Internal, null, spanBuilderOptions) .SetSampler(Samplers.AlwaysSample) .StartSpan(); Assert.True(rootSpan.Context.IsValid); Assert.True(rootSpan.Context.TraceOptions.IsSampled); // Apply the given sampler for child spans. ISpan childSpan = SpanBuilder.CreateWithParent(SPAN_NAME, SpanKind.Internal, rootSpan, spanBuilderOptions) .SetSampler(Samplers.NeverSample) .StartSpan(); Assert.True(childSpan.Context.IsValid); Assert.Equal(rootSpan.Context.TraceId, childSpan.Context.TraceId); Assert.False(childSpan.Context.TraceOptions.IsSampled); }