Подтвердить что ты не робот

Использование Azure Application Insights с Azure WebJob

Документация Azure содержит множество примеров интеграции приложений Azure Application Insights в различные типы приложений, такие как ASP.NET, Java и т.д. Однако в документации нет примеров интеграции приложений Insights в Azure WebJob.

Есть ли у кого-нибудь ссылка на пример или статью, в которой описывается, как интегрировать данные Azure Application Insights в Azure WebJob, созданные в качестве консольного приложения?

4b9b3361

Ответ 1

Я написал консольное приложение, которое отслеживает события и показатели через Application Insights, и я полагаю, что 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

Существует также следующее: Приложение Insights для приложений, сервисов и рабочих ролей Windows Desktop

Ответ 2

Так как вышеупомянутый ответ 2 года, и с тех пор многое изменилось. Теперь доступен пакет nuget для интеграции приложений с Azure Webjobs. Вам необходимо установить следующие пакеты:

  • Microsoft.Azure.WebJobs.Logging.ApplicationInsights(в настоящее время в бета-версии)
  • Microsoft.Extensions.Logging
  • 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;
}

Посмотреть полный пост на этом здесь