2015-09-09 29 views
20

Tài liệu Azure bao gồm nhiều ví dụ tích hợp Azure Application Insights vào các loại ứng dụng khác nhau, chẳng hạn như ASP.NET, Java, v.v. Tuy nhiên, tài liệu không hiển thị bất kỳ ví dụ nào về tích hợp Thông tin chi tiết về ứng dụng vào một Azure WebJob.Sử dụng Azure Application Insights với Azure WebJob

Có ai có liên kết đến một ví dụ hoặc bài viết bao gồm cách tích hợp Azure Insights ứng dụng vào Azure WebJob được xây dựng như một ứng dụng Console không?

+0

Theo như tài liệu chính thức đi, đây là gần nhất mà họ hiện có: https://docs.microsoft.com/en-us/azure/application-insights/app-insights-windows-desktop. –

Trả lời

19

Tôi đã viết một ứng dụng giao diện điều khiển theo dõi các sự kiện và số liệu qua ứng dụng Insights, và tôi hình dung một WebJob sẽ không được tất cả những gì khác nhau, bằng cách thêm các gói NuGet sau:

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.TraceListener (điều này có thể không được yêu cầu)

My ApplicationInsights.config trông như thế này:

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

Và chương trình đơn giản thực hiện điều này:

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 

Ngoài ra còn có này: Application Insights on Windows Desktop apps, services and worker roles

+4

Tôi chỉ thực hiện điều này trong một WebJob và không cần gói 'Microsoft.ApplicationInsights.TraceListener' hoặc tệp' ApplicationInsights.config'. – BenV

+0

Nói chung tốt hơn nên sử dụng 'Microsoft.ApplicationInsights.WindowsServer' để nhận thêm một số bộ sưu tập mặc định. –

+1

@Brendan, nơi viết mã khởi tạo của thông tin chi tiết về ứng dụng trong web thuần túy Công việc như program.cs hoặc functions.cs. bạn có thể vui lòng cho tôi biết cách tiếp cận được khuyến nghị để viết mã khởi tạo của AI không. – pradeep

3

Kể từ khi câu trả lời ở trên là 2 tuổi và nhiều thứ đã thay đổi kể từ đó. Bây giờ có gói nuget có sẵn để tích hợp Insights ứng dụng với Azure Webjobs. Bạn cần cài đặt bên dưới gói:

  1. Microsoft.Azure.WebJobs.Logging.ApplicationInsights (Hiện nay trong phiên bản beta)
  2. Microsoft.Extensions.Logging
  3. Microsoft.Extensions.Logging.Console

Configure JobHostConfiguration như sau:

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

Xem bài đầy đủ vềnày

+0

Tôi đang có một số nhận được các hướng dẫn để làm việc (dự án sẽ không xây dựng và không thể tìm thấy lớp LoggerFactory cụ thể). Nó chắc chắn có thể là một cái gì đó trong dự án của tôi, nhưng có vẻ như những hướng dẫn này là cho một NET Webjob. Nó không rõ ràng nếu các bước cũng làm việc cho một dự án không cốt lõi. Am i thiếu cái gì ở đây? –

+0

@AaronKrone Hãy chắc chắn rằng bạn có gói nuget 3 smentioned. Điều này cũng làm việc cho các dự án cốt lõi không phải .net – Unnie

Các vấn đề liên quan