public static void AddApplicationInsightsKubernetesEnricher(
            this TelemetryConfiguration telemetryConfiguration,
            Action <AppInsightsForKubernetesOptions> applyOptions = null,
            IKubernetesServiceCollectionBuilder kubernetesServiceCollectionBuilder = null,
            Func <bool> detectKubernetes = null,
            ILogger <IKubernetesServiceCollectionBuilder> logger = null)
        {
            IServiceCollection standaloneServiceCollection = new ServiceCollection();

            standaloneServiceCollection = standaloneServiceCollection.AddApplicationInsightsKubernetesEnricher(
                applyOptions,
                kubernetesServiceCollectionBuilder,
                detectKubernetes,
                logger);

            // Static class can't used as generic types.
            IServiceProvider      serviceProvider         = standaloneServiceCollection.BuildServiceProvider();
            ITelemetryInitializer k8sTelemetryInitializer = serviceProvider.GetServices <ITelemetryInitializer>()
                                                            .FirstOrDefault(ti => ti is KubernetesTelemetryInitializer);

            if (k8sTelemetryInitializer != null)
            {
                telemetryConfiguration.TelemetryInitializers.Add(k8sTelemetryInitializer);

                logger?.LogInformation($"{nameof(KubernetesTelemetryInitializer)} is injected.");
            }
            else
            {
                logger?.LogError($"Getting ${nameof(KubernetesTelemetryInitializer)} from the service provider failed.");
            }
        }