HostingApplicationDiagnostics resolve Request.Headers once (#9605)

This commit is contained in:
Ben Adams 2019-04-21 04:41:49 +01:00 committed by David Fowler
parent 24ab62108e
commit b893777898
1 changed files with 5 additions and 4 deletions

View File

@ -233,22 +233,23 @@ namespace Microsoft.AspNetCore.Hosting.Internal
{ {
var activity = new Activity(ActivityName); var activity = new Activity(ActivityName);
if (!httpContext.Request.Headers.TryGetValue(HeaderNames.TraceParent, out var requestId)) var headers = httpContext.Request.Headers;
if (!headers.TryGetValue(HeaderNames.TraceParent, out var requestId))
{ {
httpContext.Request.Headers.TryGetValue(HeaderNames.RequestId, out requestId); headers.TryGetValue(HeaderNames.RequestId, out requestId);
} }
if (!StringValues.IsNullOrEmpty(requestId)) if (!StringValues.IsNullOrEmpty(requestId))
{ {
activity.SetParentId(requestId); activity.SetParentId(requestId);
if (httpContext.Request.Headers.TryGetValue(HeaderNames.TraceState, out var traceState)) if (headers.TryGetValue(HeaderNames.TraceState, out var traceState))
{ {
activity.TraceStateString = traceState; activity.TraceStateString = traceState;
} }
// We expect baggage to be empty by default // We expect baggage to be empty by default
// Only very advanced users will be using it in near future, we encourage them to keep baggage small (few items) // Only very advanced users will be using it in near future, we encourage them to keep baggage small (few items)
string[] baggage = httpContext.Request.Headers.GetCommaSeparatedValues(HeaderNames.CorrelationContext); string[] baggage = headers.GetCommaSeparatedValues(HeaderNames.CorrelationContext);
if (baggage.Length > 0) if (baggage.Length > 0)
{ {
foreach (var item in baggage) foreach (var item in baggage)