public void TestNegativeChildSampling()
        {
            // Create tracer that samples all spans
            var tracer = new WavefrontTracer
                         .Builder(new ConsoleReporter("source"), BuildApplicationTags())
                         .WithSampler(new ConstantSampler(true))
                         .Build();

            // Create parentContext with sampled set to false
            var parentContext =
                new WavefrontSpanContext(Guid.NewGuid(), Guid.NewGuid(), null, false);

            // Verify span created AsChildOf parentContext inherits parent sampling decision
            var span = (WavefrontSpan)tracer.BuildSpan("testOp").AsChildOf(parentContext).Start();

            var  spanContext = (WavefrontSpanContext)span.Context;
            long traceId     = TraceIdToLong(spanContext.GetTraceId());

            Assert.True(tracer.Sample(span.GetOperationName(), traceId, 0));
            Assert.NotNull(span);
            Assert.Equal(parentContext.TraceId, spanContext.TraceId);
            Assert.True(spanContext.IsSampled());
            bool?samplingDecision = spanContext.GetSamplingDecision();

            Assert.True(samplingDecision.HasValue);
            Assert.False(samplingDecision.Value);
        }
示例#2
0
        public void TestSampling()
        {
            var tracer = new WavefrontTracer
                         .Builder(new ConsoleReporter("source"), BuildApplicationTags())
                         .WithSampler(new ConstantSampler(true))
                         .Build();

            Assert.True(tracer.Sample("testOp", 1L, 0));

            tracer = new WavefrontTracer
                     .Builder(new ConsoleReporter("source"), BuildApplicationTags())
                     .WithSampler(new ConstantSampler(false))
                     .Build();
            Assert.False(tracer.Sample("testOp", 1L, 0));
        }