Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }