Экспорт (0) Печать
Развернуть все

Инициализация или изменение конфигурации службы диагностики Windows Azure

Обновлено: Декабрь 2013 г.

Диагностические данные собираются путем импорта модуля диагностики Windows Azure в модель службы и последующей настройки источников данных, из которых будут собираться данные диагностики. Монитор диагностики работает в Windows Azure и в вычислений Windows Azure и собирает данные диагностики для экземпляра роли. Если модуль диагностики импортирован в модель службы для роли, то монитор диагностики запускается автоматически после запуска экземпляра роли. Для сбора диагностических данных в конфигурацию монитора диагностики нужно добавить источники данных. Если монитор диагностики не был настроен явно, после запуска роли будет использована конфигурация по умолчанию. Только некоторые из доступных источников данных добавляются в монитор диагностики по умолчанию, поэтому необходимо настроить коллекцию других источников данных с помощью файла diagnostics.wadcfg. Диагностические данные будут собраны и сохранены в экземпляре роли, но они не будут передаваться в хранилище, если в файле ServiceConfiguration.cscfg не задана учетная запись хранения. После развертывания приложения в Windows Azure можно также удаленно изменить конфигурацию монитора диагностики из приложения, работающего вне среды Windows Azure. Подробные указания о том, как включить диагностику в приложении, см. в разделе Как включить диагностику в облачной службе.

Для сбора данных диагностики следует импортировать модуль диагностики в модель службы для каждой роли, из которой нужно собирать диагностические данные. Для импорта модуля нужно добавить элемент Import в файл ServiceDefinition.csdef. В следующем примере показан элемент Import, заданный для веб-роли:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyHostedService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <WebRole name="WebRole1">
    <!--<Sites> ... </Sites> -->
    <!-- <Endpoints> ... </Endpoints> -->
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
  </WebRole>
</ServiceDefinition>

Дополнительные сведения о создании файла определения службы и файла конфигурации службы см. в разделе Справочник по схеме. Дополнительные сведения об определении модели размещенной службы см. в разделе Настройка облачной службы для Windows Azure.

По умолчанию данные диагностики не сохраняется в хранилище. Для передачи диагностических данных в хранилище необходимо определить строку подключения в файле ServiceConfiguration.cscfg. В следующем примере показано, как определить строку подключения для передачи данных в хранения Windows Azure.

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="MyHostedService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*">
  <Role name="WebRole1">
    <Instances count="1" />
    <ConfigurationSettings>
    <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

Если нужно использовать учетную запись хранения в Windows Azure, необходимо добавить в строку подключения имя и ключ учетной записи:


<ConfigurationSettings>
   <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<AccountName>;AccountKey=<AccountKey>"/>
</ConfigurationSettings>

Значения AccountName и AccountKey можно найти на портале управления Windows Azure на панели мониторинга учетной записи хранения в разделе «Управление ключами доступа». Для строки подключения должен использоваться протокол HTTPS.

По умолчанию только некоторые из доступных источников данных добавляются в монитор диагностики, поэтому необходимо добавить другие источники для сбора определенных типов данных диагностики. Сведения о типах данных диагностики, которые можно настроить для сбора приложением, см. в разделе Diagnostics Data Sources.

Диагностические данные собираются за счет импорта модуля диагностики в модель службы и последующей настройки источников данных, из которых будут собираться данные диагностики. Для сбора диагностических данных в конфигурацию монитора диагностики нужно добавить источники данных. Существует несколько механизмов для настройки диагностики. Использование файла конфигурации diagnostics.wadcfg при развертывании — предпочтительный механизм для управления конфигурацией всей роли. Дополнительные сведения см. в разделе Diagnostics Configuration Mechanisms and Order of Precedence.

После того как развернута облачная служба, вы также можете удаленно изменить конфигурацию монитора диагностики в приложении из другого приложения, работающего вне среды Windows Azure.

Вы можете настроить монитор диагностики программно, однако пакет Windows Azure SDK позволяет настроить диагностику с помощью XML-файла конфигурации (diagnostics.wadcfg). У этого метода множество преимуществ по сравнению с написанием кода в методе OnStart:

  1. Диагностика запускается перед выполнением метода OnStart, поэтому ошибки в задачах запуска можно выявить и записать в журнал.

  2. Все изменения, внесенные в конфигурацию во время выполнения, сохраняются после перезапуска.

  3. Перестраивать код для изменения конфигурации диагностики не нужно.

  4. Можно автоматически запускать монитор диагностики с определенной конфигурацией без дополнительного кода (что может вызвать исключение, из-за которого роль не будет запущена).

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

Метод Start с DiagnosticMonitorConfiguration можно использовать для установки конфигурации диагностики в методе OnStart роли. Этот подход эффективен для нового развертывания, но неэффективен для обновления развертывания, поэтому его лучше избегать.

После того как будет развернута облачная служба, вы также можете удаленно изменить конфигурацию монитора диагностики в приложении из другого приложения, работающего вне среды Windows Azure, с использованием класса DeploymentDiagnosticManager. Из этого класса можно изменять мониторы диагностики для одной или нескольких ролей. Конфигурацию монитора диагностики также можно изменить с использованием класса RoleInstanceDiagnosticManager только для одного экземпляра роли. Дополнительные сведения см. в разделе Удаленное изменение конфигурации монитора диагностики.

См. также

Показ:
© 2014 Microsoft