/// <summary> /// Gets the KubernetesTelemetryInitializer from the service collection and adds it into a TelemetryConfiguration instance. /// </summary> private static void AddKubernetesTelemetryInitializer(this TelemetryConfiguration telemetryConfiguration, IServiceCollection serviceCollection) { KubernetesTelemetryInitializer kubernetesTelemetryInitializer = null; if (KubernetesTelemetryInitializerExists(serviceCollection)) { IServiceProvider serviceProvider = serviceCollection.BuildServiceProvider(); kubernetesTelemetryInitializer = serviceProvider.GetServices <ITelemetryInitializer>() .FirstOrDefault(ti => ti.GetType() == typeof(KubernetesTelemetryInitializer)) as KubernetesTelemetryInitializer; telemetryConfiguration.TelemetryInitializers.Add(kubernetesTelemetryInitializer); _logger.LogTrace("KubernetesTelemetryInitializer has been injected into telemetry configuration #{0}.", telemetryConfiguration.GetHashCode()); _logger.LogInformation("KubernetesTelemetryInitializer is injected."); } else { _logger.LogError("No KubernetesTelemetryInitializer to append to TelemetryConfiguration."); } }