c# - tools - use application insights




將Azure Application Insights與Azure WebJob一起使用 (2)

Azure文檔涵蓋了將Azure Application Insights集成到不同應用程序類型(如ASP.NET,Java等)的許多示例。但是,該文檔未顯示將Application Insights集成到Azure WebJob中的任何示例。

有沒有人鏈接到一個示例或文章,其中包含如何將Azure Application Insights集成到作為控制台應用程序構建的Azure WebJob中?


我編寫了一個控制台應用程序,通過Application Insights跟踪事件和指標,我認為通過添加以下NuGet包,WebJob將不會完全不同:

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.TraceListener(可能不需要)

我的ApplicationInsights.config看起來像這樣:

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

簡單的程序就是這樣做的:

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

還有: Windows桌面應用程序,服務和工作者角色的Application Insights


由於上述答案是2年,從那時起許多事情發生了變化。 現在有一個nuget包可用於與Azure Webjobs集成Application Insight。 您需要安裝以下包:

  1. Microsoft.Azure.WebJobs.Logging.ApplicationInsights(目前處於測試階段)
  2. Microsoft.Extensions.Logging
  3. Microsoft.Extensions.Logging.Console

配置JobHostConfiguration如下:

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

here查看完整的帖子