예제 #1
0
        public static DistributedTraceInformation GetDisInfo(PubsubMessage msg)
        {
            DistributedTraceInformation disInfo = new DistributedTraceInformation();

            string traceId  = string.Empty;
            string parentId = string.Empty;

            if (msg.Attributes.TryGetValue(TracingConstants.ExternalTraceIdHeader, out traceId))
            {
                disInfo.TraceId = TraceIdUtil.GetLongFromHex(traceId);
            }

            if (msg.Attributes.TryGetValue(TracingConstants.ExternalParentSpanIdHeader, out parentId))
            {
                disInfo.ParentSpanId = TraceIdUtil.GetLongFromHex(parentId);
            }

            return(disInfo);
        }
        public static DistributedTraceInformation GetDisInfo(Message msg)
        {
            DistributedTraceInformation disInfo = new DistributedTraceInformation();

            if (msg == null)
            {
                return(disInfo);
            }

            if (msg.MessageAttributes.TryGetValue(TracingConstants.ExternalTraceIdHeader, out MessageAttributeValue traceIdAttributeValue))
            {
                disInfo.TraceId = TraceIdUtil.GetLongFromHex(traceIdAttributeValue.StringValue);
            }

            if (msg.MessageAttributes.TryGetValue(TracingConstants.ExternalParentSpanIdHeader, out MessageAttributeValue parentIdAttributeValue))
            {
                disInfo.ParentSpanId = TraceIdUtil.GetLongFromHex(parentIdAttributeValue.StringValue);
            }

            return(disInfo);
        }