// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // TODO: add scoped request telemetries //services.AddScoped(telemetry.GetType()); services.AddHttpContextAccessor(); services.AddSingleton <ITelemetryInitializer, HttpTelemetryInitializer>(); services.AddSingleton <ITelemetryInitializer, HttpRequestTelemetryInitializer>(); services.AddSingleton <ITelemetryInitializer, ClaimsTelemetryInitializer>(); ApplicationInsightsExtensions.AddApplicationInsightsTelemetry(services, Configuration) .AddApplicationInsightsTelemetryProcessor <TelemetryUnAuthorizedFilter>() .AddApplicationInsightsTelemetryProcessor <TelemetryPathFilter>() .AddApplicationInsightsTelemetryProcessor <TelemetryBotFilter>() .AddApplicationInsightsTelemetryProcessor <TelemetryFastRemoteDependencyCallsFilter>() .AddApplicationInsightsTelemetryProcessor <SuccessfulDependencyFilter>() ; services.AddControllers().AddControllersAsServices(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "ApplicationInsight", Version = "v1" }); }); }
public void EnableAppInsightsForKubernetesWithTimeOutSetThroughConfiguration() { IServiceCollection services = new ServiceCollection(); IConfiguration config = new ConfigurationBuilder().AddInMemoryCollection( new Dictionary <string, string>() { { "a", "b" }, { "AppInsightsForKubernetes:InitializationTimeout", "3.1:12:15.34" } }).Build(); services.AddSingleton(config); ApplicationInsightsExtensions.ConfigureKubernetesTelemetryInitializer(services, () => true, new KubernetesTestServiceCollectionBuilder(), null); Assert.NotNull(services.FirstOrDefault(sd => sd.ImplementationType == typeof(KubernetesTelemetryInitializer))); IServiceProvider serviceProvider = services.BuildServiceProvider(); ITelemetryInitializer targetTelemetryInitializer = serviceProvider.GetServices <ITelemetryInitializer>().FirstOrDefault(ti => ti is KubernetesTelemetryInitializer); if (targetTelemetryInitializer is KubernetesTelemetryInitializer target) { Assert.StrictEqual(new TimeSpan(days: 3, hours: 1, minutes: 12, seconds: 15, milliseconds: 340), target._options.InitializationTimeout); } else { Assert.True(false, "Not the target telemetry initializer."); } }
/// <inheritdoc /> public void Configure(ApplicationInsightsServiceOptions options) { if (this.configuration != null) { ApplicationInsightsExtensions.AddTelemetryConfiguration(this.configuration, options); } if (Debugger.IsAttached) { options.DeveloperMode = true; } }
/// <inheritdoc /> public void Configure(ApplicationInsightsServiceOptions options) { var configBuilder = new ConfigurationBuilder() .SetBasePath(this.hostingEnvironment.ContentRootPath) .AddJsonFile("appsettings.json", true) .AddEnvironmentVariables(); ApplicationInsightsExtensions.AddTelemetryConfiguration(configBuilder.Build(), options); if (Debugger.IsAttached) { options.DeveloperMode = true; } }
/// <inheritdoc /> public void Configure(ApplicationInsightsServiceOptions options) { var configBuilder = new ConfigurationBuilder() .SetBasePath(this.hostingEnvironment.ContentRootPath ?? Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", true) .AddJsonFile(string.Format(CultureInfo.InvariantCulture, "appsettings.{0}.json", hostingEnvironment.EnvironmentName), true) .AddEnvironmentVariables(); ApplicationInsightsExtensions.AddTelemetryConfiguration(configBuilder.Build(), options); if (Debugger.IsAttached) { options.DeveloperMode = true; } }
public void ServiceInjected() { IServiceCollection services = new ServiceCollection(); ApplicationInsightsExtensions.ConfigureKubernetesTelemetryInitializer(services, () => true, new KubernetesTestServiceCollectionBuilder(), null); Assert.NotNull(services.FirstOrDefault(sd => sd.ImplementationType == typeof(KubernetesTelemetryInitializer))); IServiceProvider serviceProvider = services.BuildServiceProvider(); ITelemetryInitializer targetTelemetryInitializer = serviceProvider.GetServices <ITelemetryInitializer>().FirstOrDefault(ti => ti is KubernetesTelemetryInitializer); Assert.NotNull(targetTelemetryInitializer); // K8s services serviceProvider.GetRequiredService <IKubeHttpClientSettingsProvider>(); serviceProvider.GetRequiredService <KubeHttpClientFactory>(); serviceProvider.GetRequiredService <K8sQueryClientFactory>(); serviceProvider.GetRequiredService <IK8sEnvironmentFactory>(); }