public ContextTelemetryInitializer(AppInsightsSettings serviceContext) { _settings = serviceContext; }
public static IServiceCollection AddAppInsights(this IServiceCollection services, AppInsightsSettings settings, string instrumentationKey) { var serviceProvider = services.BuildServiceProvider(); if (serviceProvider.GetService <IHostingEnvironment>() == null) { // force to use aspnetcore hosting environment so that all modules can be loaded services.TryAddSingleton <IHostingEnvironment, HostingEnvironment>(); } var appInsightsConfig = TelemetryConfiguration.Active; appInsightsConfig.InstrumentationKey = instrumentationKey; appInsightsConfig.TelemetryInitializers.Add(new OperationCorrelationTelemetryInitializer()); appInsightsConfig.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer()); appInsightsConfig.TelemetryInitializers.Add(new ContextTelemetryInitializer(settings)); var module = new DependencyTrackingTelemetryModule(); module.IncludeDiagnosticSourceActivities.Add("Microsoft.Azure.ServiceBus"); module.IncludeDiagnosticSourceActivities.Add("Microsoft.Azure.EventHubs"); module.IncludeDiagnosticSourceActivities.Add("Microsoft.Azure.KeyVault"); module.IncludeDiagnosticSourceActivities.Add("Microsoft.Azure.DocumentDB"); module.Initialize(appInsightsConfig); var appFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location); services.TryAddSingleton <ITelemetryChannel>(new ServerTelemetryChannel() { StorageFolder = appFolder, DeveloperMode = true }); // var telemetryClient = new TelemetryClient(); // services.AddSingleton(telemetryClient); services.AddApplicationInsightsTelemetry(o => { o.RequestCollectionOptions.EnableW3CDistributedTracing = true; o.InstrumentationKey = instrumentationKey; o.EnableDebugLogger = true; o.AddAutoCollectedMetricExtractor = true; o.EnableAdaptiveSampling = false; }); return(services); }