public void AddTheInitializerToGivenConfiguration() { Mock <ITelemetryChannel> channelMock = new Mock <ITelemetryChannel>(); Mock <IKubernetesServiceCollectionBuilder> serviceCollectionBuilderMock = new Mock <IKubernetesServiceCollectionBuilder>(); ServiceCollection sc = new ServiceCollection(); sc.AddLogging(); sc.AddSingleton <ITelemetryInitializer>(p => { var envMock = new Mock <IK8sEnvironment>(); envMock.Setup(env => env.ContainerID).Returns("Cid"); var envFactoryMock = new Mock <IK8sEnvironmentFactory>(); envFactoryMock.Setup(f => f.CreateAsync(It.IsAny <DateTime>())).ReturnsAsync(envMock.Object, TimeSpan.FromMinutes(1)); return(new KubernetesTelemetryInitializer(envFactoryMock.Object, TimeSpan.FromSeconds(5), SDKVersionUtils.Instance, p.GetService <ILogger <KubernetesTelemetryInitializer> >())); }); serviceCollectionBuilderMock.Setup(b => b.InjectServices(It.IsAny <IServiceCollection>(), It.IsAny <TimeSpan>())) .Returns(sc); TelemetryConfiguration telemetryConfiguration = new TelemetryConfiguration("123", channelMock.Object); telemetryConfiguration.EnableKubernetes(null, serviceCollectionBuilderMock.Object); Assert.NotNull(telemetryConfiguration.TelemetryInitializers); Assert.True(telemetryConfiguration.TelemetryInitializers.Count == 1); Assert.True(telemetryConfiguration.TelemetryInitializers.First() is KubernetesTelemetryInitializer); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } // uService_prototype TelemetryConfiguration aiConfig = new TelemetryConfiguration("8e9838a3-ad63-4d30-96f7-2f0a505bc0f6", app.ApplicationServices.GetService <ITelemetryChannel>()); aiConfig.EnableKubernetes(); TelemetryClient client = new TelemetryClient(aiConfig); // Invoking the constructor for the TelemetryInitializer client.TrackEvent("Hello"); // saarsfun01 TelemetryConfiguration aiConfig2 = new TelemetryConfiguration("5789ad10-8b39-4f8a-88dc-632d1342d5e0", app.ApplicationServices.GetService <ITelemetryChannel>()); aiConfig2.EnableKubernetes(); TelemetryClient client2 = new TelemetryClient(aiConfig2); var _forget = ThrowAnotherHelloAsync(client, client2); app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }