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); }
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)); }