使用Application Insights根据WebJob日志中的错误监视Azure WebJobs运行状况

时间:2019-04-17 13:46:41

标签: azure azure-webjobs azure-application-insights azure-webjobs-triggered

我已按照以下documentation配置了多步Web测试,以使用Azure Application Insights监视Azure Web Jobs的运行状况。但是,此多步骤Web测试将仅检查Azure Web Job的状态,是否为“正在运行,失败和中止”。

有时,Azure Web作业已中止。但是工作在其中进行。因此,我需要使用多步Web测试基于日志中的错误来监视Azure Web Job的状态,如下图所示。 enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用Application Insights Integration来实现它。 LogCategoryFilter具有一个Default属性,其初始值为Information,这意味着将记录任何信息级别为Information,Warning,Error或Critical的消息。

您总共需要三个软件包:

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

注意:请不要忘记在应用程序设置中添加APPINSIGHTS_INSTRUMENTATIONKEY

我测试了ProcessQueueMessage个网络作业。

public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message, ILogger logger)
    {
        logger.LogInformation("it is a error......");
        logger.LogError(new Exception(), "it is a test error...");
    }

这是我的网络作业日志。

enter image description here

这是Application Insight页面。您可以在此处找到“信息”,“警告”和“异常”。

enter image description here