Exemple #1
0
        public void MultipleSpans()
        {
            var mockConsumer = new Mock <IConsumer <TraceProto> >();
            var tracer       = SimpleManagedTracer.Create(mockConsumer.Object, CreateTrace());

            var annotation = new Dictionary <string, string>();

            annotation.Add("annotation-key", "annotation-value");

            Predicate <IEnumerable <TraceProto> > matcher = (IEnumerable <TraceProto> t) =>
            {
                var spans = t.Single().Spans;
                return(spans.Count == 5 &&
                       IsValidSpan(spans[0], "child-one", spans[4].SpanId) &&
                       IsValidSpan(spans[1], "grandchild-one", spans[3].SpanId, SpanKind.RpcClient) &&
                       IsValidSpan(spans[2], "grandchild-two", spans[3].SpanId) &&
                       TraceUtils.IsValidAnnotation(spans[2], annotation) &&
                       IsValidSpan(spans[3], "child-two", spans[4].SpanId) &&
                       !string.IsNullOrWhiteSpace(spans[0].Labels[Labels.StackTrace]) &&
                       IsValidSpan(spans[4], "root"));
            };

            mockConsumer.Setup(c => c.Receive(Match.Create(matcher)));

            tracer.StartSpan("root");
            tracer.StartSpan("child-one");
            tracer.SetStackTrace(EmptyStackTrace);
            tracer.EndSpan();
            tracer.StartSpan("child-two");
            tracer.StartSpan("grandchild-one", StartSpanOptions.Create(SpanKind.RpcClient));
            tracer.EndSpan();
            tracer.StartSpan("grandchild-two");
            tracer.AnnotateSpan(annotation);
            tracer.EndSpan();
            tracer.EndSpan();
            tracer.EndSpan();
            mockConsumer.VerifyAll();
        }
        public void CanTrace_False()
        {
            var rateLimiter = TraceUtils.GetRateLimiter(999);

            Assert.False(rateLimiter.CanTrace());
        }
        public void CanTrace()
        {
            var rateLimiter = TraceUtils.GetRateLimiter(1001);

            Assert.True(rateLimiter.CanTrace());
        }