tutorial net insights applications application addapplicationinsightssettings c# azure azure-webjobs azure-application-insights

net - application insights tutorial c#



Usar Azure Application Insights con Azure WebJob (2)

Dado que la respuesta anterior tiene 2 años y muchas cosas han cambiado desde entonces. Ahora hay un paquete nuget disponible para la integración de insights de aplicaciones con Azure Webjobs. Necesita instalar los siguientes paquetes:

  1. Microsoft.Azure.WebJobs.Logging.ApplicationInsights (actualmente en versión beta)
  2. Microsoft.Extensions.Logging
  3. Microsoft.Extensions.Logging.Console

Configure JobHostConfiguration de la siguiente manera:

string instrumentationKey = Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY"); if (!string.IsNullOrEmpty(instrumentationKey)) { // build up a LoggerFactory with ApplicationInsights and a Console Logger config.LoggerFactory = new LoggerFactory().AddApplicationInsights(instrumentationKey, null).AddConsole(); config.Tracing.ConsoleLevel = TraceLevel.Off; }

Ver la publicación completa en esto here

La documentación de Azure abarca muchos ejemplos de integración de Azure Application Insights en diferentes tipos de aplicaciones, como ASP.NET, Java, etc. Sin embargo, la documentación no muestra ejemplos de integración de Application Insights en Azure WebJob.

¿Alguien tiene un enlace a un ejemplo o artículo que cubra cómo integrar Azure Application Insights en Azure WebJob que está desarrollado como una aplicación de consola?


He escrito una aplicación de consola que rastrea eventos y métricas a través de Application Insights, y me imagino que un WebJob no será tan diferente, al agregar los siguientes paquetes NuGet:

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.TraceListener (esto puede no ser necesario)

Mi ApplicationInsights.config ve así:

<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings"> <TelemetryModules> <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights" /> </TelemetryModules> </ApplicationInsights>

Y el programa simple hace esto:

TelemetryConfiguration.Active.InstrumentationKey = "the_key"; TelemetryConfiguration.Active.TelemetryChannel.DeveloperMode = true; var tc = new TelemetryClient(); tc.TrackRequest("Track Some Request", DateTimeOffset.UtcNow, new TimeSpan(0, 0, 3), "200", true); tc.TrackMetric("XYZ Metric", 100); tc.TrackEvent("Tracked Event"); tc.Flush(); //need to do this, otherwise if the app exits the telemetry data won''t be sent

También está esto: Application Insights en aplicaciones de escritorio de Windows, servicios y roles de trabajador