Запланированные задачи, пакеты и небольшие задания обработки исторически были сложны для построения, запуска и мониторинга. Microsoft Azure WebJobs пытается значительно упростить это для разработчиков: это просто фоновые задания, которые могут выполняться непрерывно или по расписанию.
Бесплатно и просто
Бесплатные и невероятно простые в создании и использовании веб-задания Azure — одна из самых любимых технологий группы агентов .NET в стеке Microsoft Azure. Для разработчиков некоторые из самых восхитительных аспектов WebJobs — это панели мониторинга и функции вызова, доступные прямо из коробки!
К инструментальным панелям WebJobs можно получить доступ через сайт kudu, связанный с вашим хост-сайтом WebJobs:
https: // [ваш-хост] .scm.azurewebsites.net / azurejobs / # / работа
Мы хотели контролировать наши WebJobs, чтобы лучше понять, что они делают. Мы хотели выяснить, например, были ли какие-либо проблемы или ошибки, и узнать, что может потребовать рефакторинга, чтобы сделать обработку наших очередей более эффективной.
Поэтому мы инструктировали вещи, которые были важны для нас, с помощью агента New Relic .NET. (См. Вспомогательный код на GitHub .)
Как сделать то, что мы сделали
1. Добавьте новое расширение сайта Relic на свой хост-сайт: см. Документацию в разделе « Установка с использованием расширения сайта с сайта SCM ».
2. Получите свой лицензионный ключ (перейдите по адресу https://rpm.newrelic.com/accounts/[accountId] после входа в систему — лицензионный ключ появится справа).
3. В app.config WebJob добавьте следующее appsetting
:
<configuration>
<appSettings>
<add key="NewRelic.AppName" value="[replace_with_the_name_you_want_reported_to_new_relic]" />
<add key="NewRelic.AgentEnabled" value="true" />
<add key="NewRelic.LicenseKey" value="[replace_with_your_key]" />
</appSettings>
</configuration>
4. Добавьте некоторые инструменты (например, чтобы помочь агенту найти то, что, по вашему мнению, важно контролировать).
5. В WebJob добавьте папку и файл: newrelic\extensions[someuniquename].xml
6. Убедитесь, что Build action
это так Content
.
7. В файле добавьте свои инструменты.
Например, скажем, у вас function.cs
есть:
namespace WebJobs.Journals
{
public class Functions
{
public static void JournalOperations(parms...)
{
new JobRunHandler<JobMessage>(parms...)
.Run(parms..);
}
}
}
Содержимое файла инструментария XML будет выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<extension xmlns="urn:newrelic-extension">
<instrumentation>
<tracerFactory name="NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory">
<match assemblyName="WebJobs.Journals" className="WebJobs.Journals.Functions">
<exactMethodMatcher methodName="JournalOperations" />
</match>
</tracerFactory>
</instrumentation>
</extension>
8. Наконец, перезагрузите хост-сайт.
Теперь мы дали себе рентгеновское зрение в наших WebJobs! Это позволяет разработчикам лучше понимать и настраивать свои приложения, одновременно обеспечивая видимость операций, чтобы убедиться, что наши веб-задания работоспособны и масштабируются соответствующим образом. Вы можете получить больше информации о том, как сделать это для себя и попробовать это сегодня, зайдя на GitHub и получив код .