2015-09-09 80 views
20

Azure文檔涵蓋了許多將Azure應用程序洞察集成到不同應用程序類型(例如ASP.NET,Java等)的示例。但是,文檔沒有顯示任何集成Application Insights成Azure WebJob。將Azure應用程序洞察與Azure Web作業結合使用

是否有人鏈接到一個示例或文章,其中介紹瞭如何將Azure Application Insights集成到構建爲控制檯應用程序的Azure WebJob中?

+0

至於官方文檔,這是他們目前最接近的:https://docs.microsoft.com/en-us/azure/application-insights/app-insights-windows-desktop。 –

回答

19

我寫了通過應用見解跟蹤事件和度量一個控制檯應用程序,我統計了WebJob不會是所有的不同,通過添加以下的NuGet包:

  • 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

+4

我剛剛在WebJob中實現了這個功能,並且不需要'Microsoft.ApplicationInsights.TraceListener'包或'ApplicationInsights.config'文件。 – BenV

+0

通常最好使用'Microsoft.ApplicationInsights.WindowsServer'來獲得更多的默認收集器。 –

+1

@Brendan,在azure web Job中編寫應用程序見解的初始化代碼,如program.cs或functions.cs。你能告訴我什麼是推薦的方法來編寫AI的初始化代碼。 – pradeep

3

由於上述答案爲2歲,從那以後很多事情都改變了。現在有Nuget軟件包可用於與Azure Webjobs集成應用程序洞察。您需要安裝以下包:

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

見本全文後

+0

我有一些讓這些指令工作(項目不會建立,並找不到具體的LoggerFactory類)。這絕對可以是我的項目中的東西,但它似乎是這些說明是爲了.NET Core webjob。目前尚不清楚這些步驟是否也適用於非核心項目。我在這裏錯過了什麼嗎? –

+0

@AaronKrone確保你已經提到了3個nuget包。這也適用於非.net核心項目 – Unnie

相關問題