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."); } }