web-dev-qa-db-fra.com

Utiliser Azure Application Insights avec Azure WebJob

La documentation Azure couvre de nombreux exemples d'intégration d'Azure Application Insights dans différents types d'applications, tels que ASP.NET, Java, etc. Cependant, la documentation ne montre aucun exemple d'intégration d'Application Insights dans un Azure WebJob.

Quelqu'un a-t-il un lien vers un exemple ou un article qui explique comment intégrer Azure Application Insights dans un Azure WebJob conçu comme une application console?

28
Chris Pietschmann

J'ai écrit une application console qui suit les événements et les métriques via Application Insights, et je pense qu'un WebJob ne sera pas si différent, en ajoutant les packages NuGet suivants:

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.TraceListener (cela peut ne pas être nécessaire)

Ma ApplicationInsights.config ressemble à ça:

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

Et le programme simple fait ceci:

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

Il y a aussi ceci: Application Insights sur les applications, services et rôles de travail Windows Desktop

22
Brendan Green

Depuis la réponse ci-dessus a 2 ans et beaucoup de choses ont changé depuis. Désormais, un package nuget est disponible pour l'intégration d'Application Insights avec Azure Webjobs. Vous devez installer les packages ci-dessous:

  1. Microsoft.Azure.WebJobs.Logging.ApplicationInsights (actuellement en version bêta)
  2. Microsoft.Extensions.Logging
  3. Microsoft.Extensions.Logging.Console

Configurez JobHostConfiguration comme ci-dessous:

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;
}

Voir l'article complet à ce sujet ici

10
Unnie