将Azure Application Insights与Azure WebJob一起使用

时间:2015-09-09 00:06:31

标签: c# azure azure-webjobs azure-application-insights

Azure文档涵盖了将Azure Application Insights集成到不同应用程序类型(如ASP.NET,Java等)的许多示例。但是,文档未显示将Application Insights集成到Azure WebJob中的任何示例。

是否有人链接到一个示例或文章,其中介绍了如何将Azure Application Insights集成到作为控制台应用程序构建的Azure WebJob中?

2 个答案:

答案 0 :(得分:22)

我编写了一个控制台应用程序,通过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

还有:Application Insights on Windows Desktop apps, services and worker roles

答案 1 :(得分:8)

由于上述答案已有2年历史,此后很多事情都发生了变化。现在有一个nuget包可用于与Azure Webjobs集成Application Insight。您需要安装以下软件包:

  1. Microsoft.Azure.WebJobs.Logging.ApplicationInsights(目前处于测试阶段)
  2. Microsoft.Extensions.Logging
  3. Microsoft.Extensions.Logging.Console
  4. 配置JobHostConfiguration,如下所示:

    react-boilerplate

    查看此here

    的完整帖子