public void Trace_Simple_Buffer()
        {
            string rootSpanName = EntryData.GetMessage(nameof(Trace_Simple_Buffer), _testId);
            // Create annotations with very large labels to ensure the buffer is flushed.
            string label  = string.Join("", Enumerable.Repeat("1234567890", 1000));
            var    labels = new Dictionary <string, string>
            {
                { "key-one", label },
                { "key-two", label },
                { "key-three", label },
                { "key-four", label },
                { "key-five", label },
            };

            using (var consumer = SizedBufferingConsumer <TraceProto> .Create(_grpcConsumer, MessageSizer <TraceProto> .GetSize, BufferOptions.DefaultBufferSize / 2))
            {
                var tracer = CreateSimpleManagedTracer(consumer);
                using (tracer.StartSpan(rootSpanName))
                {
                    BlockUntilClockTick();
                    tracer.AnnotateSpan(labels);
                }
            }

            TraceProto trace = TraceEntryPolling.Default.GetTrace(rootSpanName, _startTime);

            TraceEntryVerifiers.AssertSingleSpan(trace, rootSpanName);
        }
        public void Trace_Simple_Buffer()
        {
            string rootSpanName = CreateRootSpanName(nameof(Trace_Simple_Buffer));
            var    consumer     = SizedBufferingConsumer <TraceProto> .Create(
                CreateGrpcTraceConsumer(), MessageSizer <TraceProto> .GetSize, BufferOptions.DefaultBufferSize / 2);

            var tracer = CreateSimpleManagedTracer(consumer);

            // Create annotations with very large labels to ensure the buffer is flushed.
            string label      = string.Join("", Enumerable.Repeat("1234567890", 1000));
            var    annotation = new Dictionary <string, string>
            {
                { "key-one", label },
                { "key-two", label },
                { "key-three", label },
                { "key-four", label },
                { "key-five", label },
            };

            using (tracer.StartSpan(rootSpanName))
            {
                BlockUntilClockTick();
                tracer.AnnotateSpan(annotation);
            }

            TraceProto trace = _polling.GetTrace(rootSpanName, _startTime);

            Assert.NotNull(trace);
            Assert.Single(trace.Spans);
        }
Beispiel #3
0
        public void Trace_Simple_BufferNoTrace()
        {
            string rootSpanName = CreateRootSpanName(nameof(Trace_Simple_BufferNoTrace));
            var    consumer     = SizedBufferingConsumer <TraceProto> .Create(
                CreateGrpcTraceConsumer(), MessageSizer <TraceProto> .GetSize, BufferOptions.DefaultBufferSize);

            var tracer = CreateSimpleManagedTracer(consumer);

            tracer.StartSpan(rootSpanName);
            BlockUntilClockTick();
            tracer.EndSpan();

            TraceProto trace = _polling.GetTrace(rootSpanName, _startTime, false);

            Assert.Null(trace);
        }
        public async Task Trace_Simple_BufferNoTrace()
        {
            string rootSpanName = CreateRootSpanName(nameof(Trace_Simple_BufferNoTrace));
            var    consumer     = SizedBufferingConsumer <TraceProto> .Create(
                CreateGrpcTraceConsumer(), TraceSizer.Instance, BufferOptions.DefaultBufferSize);

            var tracer = CreateSimpleManagedTracer(consumer);

            tracer.StartSpan(rootSpanName);
            BlockUntilClockTick();
            tracer.EndSpan();

            TraceProto trace = await GetTrace(rootSpanName, false);

            Assert.Null(trace);
        }
        public void Trace_Simple_BufferNoTrace()
        {
            string rootSpanName = EntryData.GetMessage(nameof(Trace_Simple_BufferNoTrace), _testId);

            using (var consumer = SizedBufferingConsumer <TraceProto> .Create(_grpcConsumer, MessageSizer <TraceProto> .GetSize, BufferOptions.DefaultBufferSize))
            {
                using (CreateSimpleManagedTracer(consumer).StartSpan(rootSpanName))
                {
                    BlockUntilClockTick();
                }

                // Verifying before disposing of the consumer so as to check that the buffer
                // wasn't flush because of the size of the messages. If we verify after disposing
                // any message, big or small, would have been flushed on disposing.
                TraceProto trace = TraceEntryPolling.NoEntry.GetTrace(rootSpanName, _startTime, false);

                Assert.Null(trace);
            }
        }
 private IFlushableConsumer <int> GetConsumer(IConsumer <int> consumer)
 => SizedBufferingConsumer <int> .Create(consumer, Utils.ConstantSizer <int> .GetSize, _bufferSize);
 private SizedBufferingConsumer <int> GetConsumer(IConsumer <int> consumer)
 {
     return(SizedBufferingConsumer <int> .Create(consumer, Utils.IntSizer.Instance, _bufferSize));
 }