func createCorrelationContextHeader()

in internal/loader/request_tracing.go [26:81]


func createCorrelationContextHeader(ctx context.Context, provider acpv1.AzureAppConfigurationProvider, clientManager ClientManager, isFailoverRequest bool) http.Header {
	header := http.Header{}
	output := make([]string, 0)

	output = append(output, "Host=Kubernetes")

	if tracing := ctx.Value(RequestTracingKey); tracing != nil {
		if tracing.(RequestTracing).IsStartUp {
			output = append(output, "RequestType=StartUp")
		} else {
			output = append(output, "RequestType=Watch")
		}
	}

	if provider.Spec.Secret != nil {
		output = append(output, "UsesKeyVault")

		if provider.Spec.Secret.Refresh != nil &&
			provider.Spec.Secret.Refresh.Enabled {
			output = append(output, "RefreshesKeyVault")
		}
	}

	if provider.Spec.FeatureFlag != nil {
		output = append(output, "UsesFeatureFlag")
	}

	if provider.Spec.ReplicaDiscoveryEnabled {
		if manager, ok := clientManager.(*ConfigurationClientManager); ok {
			replicaCount := 0
			if manager.DynamicClientWrappers != nil {
				replicaCount = len(manager.DynamicClientWrappers)
			}

			output = append(output, fmt.Sprintf("ReplicaCount=%d", replicaCount))
		}

		if isFailoverRequest {
			output = append(output, "FailoverRequest")
		}
	}

	if provider.Spec.LoadBalancingEnabled {
		output = append(output, "Features=LB")
	}

	if _, ok := os.LookupEnv(AzureExtensionContext); ok {
		output = append(output, "InstalledBy=Extension")
	} else {
		output = append(output, "InstalledBy=Helm")
	}

	header.Add("Correlation-Context", strings.Join(output, ","))

	return header
}