private Activity?StartActivity(IIncomingPhysicalMessageContext context) { if (!context.MessageHeaders.TryGetValue(Headers.TraceParentHeaderName, out var parentId)) { context.MessageHeaders.TryGetValue(Headers.RequestIdHeaderName, out parentId); } string?traceStateString = default; List <KeyValuePair <string, string?> > baggageItems = new(); if (!string.IsNullOrEmpty(parentId)) { if (context.MessageHeaders.TryGetValue(Headers.TraceStateHeaderName, out var traceState)) { traceStateString = traceState; } if (context.MessageHeaders.TryGetValue(Headers.BaggageHeaderName, out var baggageValue) || context.MessageHeaders.TryGetValue(Headers.CorrelationContextHeaderName, out baggageValue)) { var baggage = baggageValue.Split(','); if (baggage.Length > 0) { foreach (var item in baggage) { if (NameValueHeaderValue.TryParse(item, out var baggageItem)) { baggageItems.Add(new KeyValuePair <string, string?>(baggageItem.Name, HttpUtility.UrlDecode(baggageItem.Value))); } } } } } var activity = parentId == null ? NServiceBusActivitySource.ActivitySource.StartActivity(ActivityNames.IncomingPhysicalMessage, ActivityKind.Consumer) : NServiceBusActivitySource.ActivitySource.StartActivity(ActivityNames.IncomingPhysicalMessage, ActivityKind.Consumer, parentId); if (activity == null) { return(activity); } activity.TraceStateString = traceStateString; _activityEnricher.Enrich(activity, context); foreach (var baggageItem in baggageItems) { activity.AddBaggage(baggageItem.Key, baggageItem.Value); } return(activity); }
private Activity?StartActivity(IOutgoingPhysicalMessageContext context) { var activity = NServiceBusActivitySource.ActivitySource.StartActivity(ActivityNames.OutgoingPhysicalMessage, ActivityKind.Producer); if (activity == null) { return(activity); } _activityEnricher.Enrich(activity, context); return(activity); }