Example #1
0
        public void CreateANewTraceparentAndResetTraceStateIfFlagsAreNotValid()
        {
            var traceContext = TraceContext.Handle("00-12345678901234567890123456789012-1234567890123456-0", "a trace state");

            traceContext.TraceParent.Should().NotBe("00-12345678901234567890123456789012-1234567890123456-0");
            traceContext.TraceState.Should().BeEmpty();
        }
Example #2
0
        public void CreateANewTraceparentAndResetTraceStateIfTheVersionCanNotBeParsed()
        {
            var traceContext = TraceContext.Handle("0-0-0-0", "a trace state");

            traceContext.TraceParent.Should().NotBe("0-0-0-0");
            traceContext.TraceState.Should().BeEmpty();
        }
Example #3
0
        public void CreateANewTraceparentAndResetTraceStateIfTheTraceIdIsNotValid()
        {
            var traceContext = TraceContext.Handle("00-0-0-0", "a trace state");

            traceContext.TraceParent.Should().NotBe("00-0-0-0");
            traceContext.TraceState.Should().BeEmpty();
        }
Example #4
0
        public void CreateADifferentTraceContextEachTime()
        {
            var traceContext1 = TraceContext.Handle(null, null);
            var traceContext2 = TraceContext.Handle(null, null);

            traceContext1.TraceParent.Should().NotBe(traceContext2.TraceParent);
        }
Example #5
0
        public void CreateANewOneIfTraceParentIsNotReceived(string traceParent, string traceState)
        {
            var traceContext = TraceContext.Handle(traceParent, traceState);

            traceContext.TraceParent.Should().NotBeNull();
            traceContext.TraceState.Should().BeEmpty();
        }
        public Task Before(SNSEvent snsEvent, MiddyNetContext context)
        {
            var snsMessage = snsEvent.Records.First().Sns;

            var traceParentHeaderValue = string.Empty;

            if (snsMessage.MessageAttributes.ContainsKey(TraceParentHeaderName))
            {
                traceParentHeaderValue = snsMessage.MessageAttributes[TraceParentHeaderName].Value;
            }

            var traceStateHeaderValue = string.Empty;

            if (snsMessage.MessageAttributes.ContainsKey(TraceStateHeaderName))
            {
                traceParentHeaderValue = snsMessage.MessageAttributes[TraceStateHeaderName].Value;
            }

            var traceContext = TraceContext.Handle(traceParentHeaderValue, traceStateHeaderValue);

            context.Logger.EnrichWith(new LogProperty(TraceParentHeaderName, traceContext.TraceParent));
            context.Logger.EnrichWith(new LogProperty(TraceStateHeaderName, traceContext.TraceState));
            context.Logger.EnrichWith(new LogProperty(TraceIdHeaderName, traceContext.TraceId));

            return(Task.CompletedTask);
        }
Example #7
0
        public void UpdateParentIdIfTraceParentIsCorrect()
        {
            var traceContext = TraceContext.Handle("00-12345678901234567890123456789012-1234567890123456-00", "a trace state");

            traceContext.TraceParent.Should().StartWith("00-12345678901234567890123456789012-")
            .And.EndWith("-00")
            .And.NotEndWith("-1234567890123456-00");
        }
        public void EnrichMessageAttributesWithTraceContext()
        {
            var sendMessageRequest = new SendMessageRequest();
            var traceContext       = TraceContext.Handle("00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01",
                                                         "congo=t61rcWkgMzE");

            sendMessageRequest.EnrichWithTraceContext(traceContext);

            sendMessageRequest.MessageAttributes.Should().ContainKey("traceparent");
            sendMessageRequest.MessageAttributes.Should().ContainKey("tracestate");
        }
        public Task Before(APIGatewayProxyRequest apiGatewayEvent, MiddyNetContext context)
        {
            var traceParentHeaderValue = string.Empty;

            if (apiGatewayEvent.Headers.ContainsKey(TraceParentHeaderName))
            {
                traceParentHeaderValue = apiGatewayEvent.Headers[TraceParentHeaderName];
            }

            var traceStateHeaderValue = string.Empty;

            if (apiGatewayEvent.Headers.ContainsKey(TraceStateHeaderName))
            {
                traceStateHeaderValue = apiGatewayEvent.Headers[TraceStateHeaderName];
            }

            var traceContext = TraceContext.Handle(traceParentHeaderValue, traceStateHeaderValue);

            context.Logger.EnrichWith(new LogProperty(TraceParentHeaderName, traceContext.TraceParent));
            context.Logger.EnrichWith(new LogProperty(TraceStateHeaderName, traceContext.TraceState));
            context.Logger.EnrichWith(new LogProperty(TraceIdHeaderName, traceContext.TraceId));

            return(Task.CompletedTask);
        }
Example #10
0
        public void PropagateTraceStateIfTraceParentIsCorrect()
        {
            var traceContext = TraceContext.Handle("00-12345678901234567890123456789012-1234567890123456-00", "a trace state");

            traceContext.TraceState.Should().Be("a trace state");
        }