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?
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:
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
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:
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