Azure — включить диагностику для рабочей/веб-роли

Я хотел бы регистрировать каждое возникающее исключение (облачное приложение MVC) в моем хранилище таблиц.

Я следовал официальному руководству от Microsoft, но кажется, что они слишком все усложняют. Учебник можно посмотреть здесь: https://azure.microsoft.com/sv-se/documentation/articles/cloud-services-dotnet-diagnostics/#how-to-enable-diagnostics-in-a-рабочаяроль

Просто кажется, что это слишком хлопотно только потому, что диагностика Azure 1.3 не поддерживается по умолчанию? В окне настройки для сетевой/рабочей роли есть более быстрый и простой вариант, позволяющий включить диагностику, но только ли это для версии 1.0?

Я просто хочу регистрировать исключения в своей учетной записи хранения, поэтому диагностики Azure 1.0 должно быть достаточно, не так ли?

Что я сделал:

  1. Включил диагностику в моей рабочей и веб-роли, установив флажок в окне настройки для веб-роли и рабочей роли.
  2. Указаны учетные данные учетной записи хранения.

В чем мне нужна помощь:

В моей учетной записи хранения не создаются контейнеры WAD. Разве они не должны создаваться после того, как я включил и указал учетные данные учетной записи хранения?

Почему так сложно включить диагностику Azure 1.3 по сравнению с 1.0?

В чем разница между диагностикой рабочей роли и диагностикой веб-роли? Если бы у меня было приложение в webrole и кеширование в рабочей роли... Регистрировалось бы оно индивидуально? Нужно ли включать их оба, если я хочу вести журнал исключений как для приложения, так и для кэширования?


person Reft    schedule 14.06.2015    source источник
comment
Как вы развертываете свой код? Visual Studio, портал или что-то еще?   -  person Gaurav Mantri    schedule 14.06.2015
comment
Визуальная студия. Щелкните правой кнопкой мыши мой проект Azure, содержащий мои роли, > опубликовать как облачное приложение.   -  person Reft    schedule 14.06.2015


Ответы (2)


Чтобы ответить на ваши вопросы:

В моей учетной записи хранения не создаются контейнеры WAD. Разве они не должны создаваться после того, как я включил и указал учетные данные учетной записи хранения?

Если вы ищете wad-control-container, то он не будет создан. Однако вы должны увидеть контейнеры для журналов IIS, журналов неудачных запросов и аварийных дампов, если вы включили это в своей конфигурации диагностики.

Почему так сложно включить диагностику Azure 1.3 по сравнению с 1.0?

Принципиально изменилась модель диагностики. Версия 1.0 была моделью подключаемого модуля, а версия 1.3 — моделью расширения (она изменилась по сравнению с SDK 2.5, когда они представили версию 1.2). Насколько это сложно, я думаю, это спорно. В то время как версия 1.0 была довольно простой и имела некоторые возможности, такие как определение конфигурации диагностики в коде, я думаю, что 1.3 — это шаг в правильном направлении. Сначала я тоже был разочарован этим, но теперь я осознаю преимущества, которые он предлагает, поскольку я использую его больше. Некоторые из преимуществ, которые мне понравились:

  • Чистая декаляративная модель вместо смешанной модели (программная + декаляративная).
  • Унифицированный подход к сбору диагностических данных как для ваших облачных служб, так и для виртуальных машин (в настоящее время только для Windows).
  • Возможность включать/отключать конфигурацию диагностики «на лету», поскольку теперь это модель расширения.
  • Поддержка журналов ETW.

Некоторые вещи, которые мне не нравятся в 1.3:

  • Процесс развертывания довольно сложен, если вы не используете Visual Studio.
  • Ограниченная инструментальная поддержка. Вам доступны только варианты Visual Studio или PowerShell. В настоящее время Portal (как текущий, так и предварительный) не поддерживает его.
  • Устаревшая функциональность On-Demand Transfer. Мы часто используем эту функцию, которая сейчас устарела, поскольку она зависит от изменений диагностики на основе кода.

В чем разница между диагностикой рабочей роли и диагностикой веб-роли?

AFAIK, между ними нет никакой разницы. Все зависит от того, какие диагностические данные вы хотите собирать для каждой роли.

Если бы у меня было приложение в webrole и кеширование в рабочей роли. Затем он регистрируется индивидуально?

Ну да и нет. Каждая роль получает свой собственный diagnostics.wadcfgx файл, в котором вы определяете учетную запись хранения для хранения диагностических данных. Если вы определите разные учетные записи хранения в файле wadcfgx каждой роли, данные будут помещены в отдельную учетную запись хранения. Даже если вы используете одну и ту же учетную запись хранения, данные будут иметь role name и role instance name, чтобы вы могли различать разные диагностические данные.

Нужно ли включать их оба, если я хочу вести журнал исключений как для приложения, так и для кэширования?

да. Вам нужно будет включить их обоих.

person Gaurav Mantri    schedule 14.06.2015
comment
Привет спасибо, отличный ответ! Об этом учебнике, на который я ссылался. Знаете ли вы другой способ установить диагностику для рабочей роли с помощью Azure Powershell? (Шаг 5). Проблема, с которой я сталкиваюсь, заключается в том, что powershell, похоже, не любит имена рабочих ролей с пробелами в них, например, Моя рабочая роль. Должен ли я использовать powershell для этого? - person Reft; 14.06.2015
comment
Посмотрите, поможет ли эта запись в блоге: rajinders.com/2015/05/03/. Я нашел это чрезвычайно полезным. Не уверен насчет пробелов в именах ролей. - person Gaurav Mantri; 14.06.2015

На GitHub есть простой сценарий PowerShell для включения WAD либо в облачной службе (роль Web/Worker), либо в ВМ без проблем. В то же время он также настроит WAD для отправки журналов в Visual Studio Application Insights. чтобы вы могли эффективно искать и запрашивать.

person FrictionFree    schedule 03.07.2016