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.AddApplicationInsightsKubernetesEnricher(null, serviceCollectionBuilderMock.Object, detectKubernetes: () => true); Assert.NotNull(telemetryConfiguration.TelemetryInitializers); Assert.True(telemetryConfiguration.TelemetryInitializers.Count == 1); Assert.True(telemetryConfiguration.TelemetryInitializers.First() is KubernetesTelemetryInitializer); }
static void Main(string[] args) { configuration.TelemetryInitializers.Add(new CloudRoleTelemetryInitializer()); configuration.AddApplicationInsightsKubernetesEnricher(); TelemetryClient client = new TelemetryClient(configuration); try { var connectingMsg = $"Connecting to message queue url: {Env.MessageQueueUrl}"; client.TrackTrace(connectingMsg); Console.WriteLine(connectingMsg); using (var connection = MessageQueue.CreateConnection()) { var subscription = connection.SubscribeAsync(SaleCreatedEvent.MessageSubject, QUEUE_GROUP); subscription.MessageHandler += SaveSale; subscription.Start(); var listeningMsg = $"Listening on subject: {SaleCreatedEvent.MessageSubject}, queue: {QUEUE_GROUP}"; client.TrackTrace(listeningMsg); Console.WriteLine(listeningMsg); _ResetEvent.WaitOne(); connection.Close(); } } catch (Exception ex) { Console.WriteLine($"Exception: {ex} in Main"); var method = new Dictionary <string, string> { { "Method", "Main" } }; client.TrackException(ex, method); } }
public void AddTheInitializerToGivenConfiguration() { TelemetryConfiguration telemetryConfiguration = new TelemetryConfiguration(); telemetryConfiguration.AddApplicationInsightsKubernetesEnricher(null, new KubernetesTestServiceCollectionBuilder(), () => true); Assert.NotNull(telemetryConfiguration.TelemetryInitializers); Assert.Single(telemetryConfiguration.TelemetryInitializers); Assert.True(telemetryConfiguration.TelemetryInitializers.First() is KubernetesTelemetryInitializer); }
public static void EnableKubernetes( this TelemetryConfiguration telemetryConfiguration, TimeSpan?timeout = null, IKubernetesServiceCollectionBuilder kubernetesServiceCollectionBuilder = null, Func <bool> detectKubernetes = null) { telemetryConfiguration.AddApplicationInsightsKubernetesEnricher( timeout, kubernetesServiceCollectionBuilder, detectKubernetes); }
public static void Initialize(string instrumentationKey) { configuration = new TelemetryConfiguration(instrumentationKey); var observer = new ApplicationInsightsKubernetesDiagnosticObserver(DiagnosticLogLevel.Trace); ApplicationInsightsKubernetesDiagnosticSource.Instance.Observable.SubscribeWithAdapter(observer); configuration.AddApplicationInsightsKubernetesEnricher(applyOptions: null); // client = new TelemetryClient(); // client.InstrumentationKey = instrumentationKey; }
public void EnableAppInsightsForKubernetesWithDefaultTimeOut() { TelemetryConfiguration telemetryConfiguration = new TelemetryConfiguration(); telemetryConfiguration.AddApplicationInsightsKubernetesEnricher( applyOptions: null, kubernetesServiceCollectionBuilder: new KubernetesTestServiceCollectionBuilder(), detectKubernetes: () => true); ITelemetryInitializer targetTelemetryInitializer = telemetryConfiguration.TelemetryInitializers.FirstOrDefault(ti => ti is KubernetesTelemetryInitializer); if (targetTelemetryInitializer is KubernetesTelemetryInitializer target) { Assert.StrictEqual(TimeSpan.FromMinutes(2), target._options.InitializationTimeout); } else { Assert.True(false, "Not the target telemetry initializer."); } }
// 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"); } // Application Insights 1 TelemetryConfiguration aiConfig = new TelemetryConfiguration("your iKey 1", app.ApplicationServices.GetService <ITelemetryChannel>()); aiConfig.AddApplicationInsightsKubernetesEnricher(applyOptions: null); TelemetryClient client = new TelemetryClient(aiConfig); // Invoking the constructor for the TelemetryInitializer client.TrackEvent("Hello"); // Application Insights 2 TelemetryConfiguration aiConfig2 = new TelemetryConfiguration("your iKey 2", app.ApplicationServices.GetService <ITelemetryChannel>()); aiConfig2.AddApplicationInsightsKubernetesEnricher(applyOptions: null); 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?}"); }); }
static void Main(string[] args) { IConfiguration config = new ConfigurationBuilder().AddEnvironmentVariables().Build(); string iKey = config["APPINSIGHTS_INSTRUMENTNATIONKEY"]; if (string.IsNullOrEmpty(iKey)) { Console.WriteLine("Can't do empty iKey."); } using (TelemetryConfiguration configuration = new TelemetryConfiguration(iKey)) { configuration.AddApplicationInsightsKubernetesEnricher(applyOptions: null); TelemetryClient client = new TelemetryClient(configuration); Console.WriteLine("Sending trace telemetry once a while."); while (true) { client.TrackTrace("Hello from AI SDK"); client.Flush(); Thread.Sleep(30000); } } }
// 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.AddApplicationInsightsKubernetesEnricher(); 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.AddApplicationInsightsKubernetesEnricher(); 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?}"); }); }