in src/Microsoft.Extensions.Configuration.AzureAppConfiguration/TracingUtils.cs [137:232]
private static string CreateCorrelationContextHeader(RequestType requestType, RequestTracingOptions requestTracingOptions)
{
IList<KeyValuePair<string, string>> correlationContextKeyValues = new List<KeyValuePair<string, string>>();
IList<string> correlationContextTags = new List<string>();
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.RequestTypeKey, Enum.GetName(typeof(RequestType), requestType)));
if (requestTracingOptions.ReplicaCount > 0)
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.ReplicaCountKey, requestTracingOptions.ReplicaCount.ToString()));
}
if (requestTracingOptions.HostType != HostType.Unidentified)
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.HostTypeKey, Enum.GetName(typeof(HostType), requestTracingOptions.HostType)));
}
if (requestTracingOptions.IsDevEnvironment)
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.EnvironmentKey, RequestTracingConstants.DevEnvironmentValue));
}
if (requestTracingOptions.FeatureFlagTracing.UsesAnyFeatureFilter())
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.FeatureFlagFilterTypeKey, requestTracingOptions.FeatureFlagTracing.CreateFiltersString()));
}
if (requestTracingOptions.FeatureFlagTracing.MaxVariants > 0)
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.FeatureFlagMaxVariantsKey, requestTracingOptions.FeatureFlagTracing.MaxVariants.ToString()));
}
if (requestTracingOptions.FeatureFlagTracing.UsesAnyTracingFeature())
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.FeatureFlagFeaturesKey, requestTracingOptions.FeatureFlagTracing.CreateFeaturesString()));
}
if (requestTracingOptions.FeatureManagementVersion != null)
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.FeatureManagementVersionKey, requestTracingOptions.FeatureManagementVersion));
}
if (requestTracingOptions.FeatureManagementAspNetCoreVersion != null)
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.FeatureManagementAspNetCoreVersionKey, requestTracingOptions.FeatureManagementAspNetCoreVersion));
}
if (requestTracingOptions.UsesAnyTracingFeature())
{
correlationContextKeyValues.Add(new KeyValuePair<string, string>(RequestTracingConstants.FeaturesKey, requestTracingOptions.CreateFeaturesString()));
}
if (requestTracingOptions.IsKeyVaultConfigured)
{
correlationContextTags.Add(RequestTracingConstants.KeyVaultConfiguredTag);
}
if (requestTracingOptions.IsKeyVaultRefreshConfigured)
{
correlationContextTags.Add(RequestTracingConstants.KeyVaultRefreshConfiguredTag);
}
if (requestTracingOptions.IsFailoverRequest)
{
correlationContextTags.Add(RequestTracingConstants.FailoverRequestTag);
}
if (requestTracingOptions.IsPushRefreshUsed)
{
correlationContextTags.Add(RequestTracingConstants.PushRefreshTag);
}
var sb = new StringBuilder();
foreach (KeyValuePair<string, string> kvp in correlationContextKeyValues)
{
if (sb.Length > 0)
{
sb.Append(",");
}
sb.Append($"{kvp.Key}={kvp.Value}");
}
foreach (string tag in correlationContextTags)
{
if (sb.Length > 0)
{
sb.Append(",");
}
sb.Append($"{tag}");
}
return sb.ToString();
}