Журнал изменений и версии схемы конфигурации для расширения Диагностики Azure (Windows)

В этой статье содержится журнал изменений версий схемы расширения Диагностики Azure для Windows (WAD), которая входит в состав пакета SDK для Microsoft Azure.

Диаграмма версий пакета SDK для Azure и системы диагностики

Версия пакета SDK для Azure Версия расширения системы диагностики Моделирование
1.x 1,0 Подключаемый модуль
2.0–2.4 1,0 Подключаемый модуль
2.5 1.2 Расширение
2.6 1,3 "
2.7 1.4 "
2.8 1.5 "
2,9 1.6 "
2.96 1.7 "
2.96 1.8 "
2.96 1.8.1 "
2.96 1,9 "
2.96 1.11 "
2.96 1.21 "

Система диагностики Azure версии 1.0 сначала поставлялась как подключаемый модуль, устанавливаемый вместе с пакетом SDK для Azure.

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

Указатель схем

Для разных версий системы диагностики Azure используются разные схемы конфигурации. Схемы 1.0 и 1.2 объявлены устаревшими. Дополнительные сведения о версии 1.3 и более новых версиях см. в статье Схема конфигурации Диагностики версии 1.3 и выше.

Журнал версий

Расширение системы диагностики 1.11

Добавлена поддержка для приемника Azure Monitor. Сейчас этот приемник работает только с данными счетчиков производительности. Он позволяет отправлять данные счетчиков производительности виртуальной машины, масштабируемого набора виртуальных машин или облачной службы в Azure Monitor в виде пользовательских метрик. Приемник Azure Monitor поддерживает такие функции:

  • Получение данных всех счетчиков производительности, отправляемых в Azure Monitor с помощью API метрик Azure Monitor.
  • Настройка оповещений для всех данных счетчиков производительности, отправляемых в Azure Monitor, с помощью нового унифицированного интерфейса оповещений в Azure Monitor.
  • Трактование оператора подстановочного знака в счетчиках производительности как экземпляра в метрике. Например, если вы собираете данные счетчика LogicalDisk(*)/DiskWrites/sec, вы можете отфильтровать или разделить эти данные по отдельным экземплярам для каждого логического диска (C:, D: и т. д.) для построения графика или настройки оповещения для каждой записи диска в секунду

Определение Azure Monitor в качестве нового приемника в конфигурации расширения системы диагностики

"SinksConfig": {
    "Sink": [
        {
            "name": "AzureMonitorSink",
            "AzureMonitor": {}
        },
    ]
}
<SinksConfig>  
  <Sink name="AzureMonitorSink">
      <AzureMonitor/>
  </Sink>
</SinksConfig>

Примечание

Для настройки приемника Azure Monitor для классических виртуальных машин и классической облачной службы требуются дополнительные параметры, определяемые в закрытой конфигурации расширения системы диагностики.

Дополнительные сведения см. в документации по схеме расширения системы диагностики.

Затем можно настроить счетчики производительности для перенаправления в приемник Azure Monitor.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "sinks": "AzureMonitorSink",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT1M",
            "unit": "percent"
        }
    ]
},
<PerformanceCounters scheduledTransferPeriod="PT1M", sinks="AzureMonitorSink">  
  <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1M" unit="percent" />  
</PerformanceCounters>

Расширение системы диагностики версии 1.9

Добавлена поддержка Docker.

Расширение системы диагностики версии 1.8.1

Вместо ключа учетной записи хранения в частной конфигурации можно указать маркер SAS. Если предоставляется маркер SAS, ключ учетной записи хранения игнорируется.

{
    "storageAccountName": "diagstorageaccount",
    "storageAccountEndPoint": "https://core.windows.net",
    "storageAccountSasToken": "{sas token}",
    "SecondaryStorageAccounts": {
        "StorageAccount": [
            {
                "name": "secondarydiagstorageaccount",
                "endpoint": "https://core.windows.net",
                "sasToken": "{sas token}"
            }
        ]
    }
}
<PrivateConfig>
    <StorageAccount name="diagstorageaccount" endpoint="https://core.windows.net" sasToken="{sas token}" />
    <SecondaryStorageAccounts>
        <StorageAccount name="secondarydiagstorageaccount" endpoint="https://core.windows.net" sasToken="{sas token}" />
    </SecondaryStorageAccounts>
</PrivateConfig>

Расширение системы диагностики версии 1.8

Добавлен тип хранилища в PublicConfig. StorageType может иметь значениеTable, Blob и TableAndBlob. Значение Table используется по умолчанию.

{
    "WadCfg": {
    },
    "StorageAccount": "diagstorageaccount",
    "StorageType": "TableAndBlob"
}
<PublicConfig>
    <WadCfg />
    <StorageAccount>diagstorageaccount</StorageAccount>
    <StorageType>TableAndBlob</StorageType>
</PublicConfig>

Расширение системы диагностики версии 1.7

Добавлена возможность маршрутизации в концентратор событий.

Расширение системы диагностики версии 1.5

Добавлен элемент sinks и возможность отправлять данные диагностики в Application Insights. Это упрощает диагностирование проблем в приложении, а также на уровне системы и инфраструктуры.

Пакет SDK для Azure 2.6 и расширение системы диагностики версии 1.3

Для проектов облачной службы, созданных в Visual Studio, были внесены следующие изменения. (Эти изменения действуют и в более поздних версиях Azure SDK.)

  • Локальный эмулятор теперь поддерживает систему диагностики. Это изменение означает, что на этапе разработки и тестирования в Visual Studio вы можете собирать диагностические данные. Это позволит вам убедиться, что приложение создает правильные трассировки. При запуске проекта облачной службы в Visual Studio строка подключения UseDevelopmentStorage=true включает сбор диагностических данных с использованием эмулятора хранения Azure. Все диагностические данные собираются в учетную запись хранения (хранилище для разработки).
  • Строка подключения к учетной записи хранения диагностической информации (Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString) также хранится в файле конфигурации (CSCFG) службы. В пакете Azure SDK версии 2.5 учетная запись хранения диагностических данных указывается в файле diagnostics.wadcfgx.

Существуют важные различия между работой строки подключения в старых версиях пакета Azure SDK (до версии 2.4 включительно) и более новых (начиная с версии 2.6).

  • В пакете SDK для Azure 2.4 и более ранних версиях строка подключения использовалась как среда выполнения подключаемого модуля диагностики, который получал из нее параметры учетной записи хранения для передачи журналов диагностики.
  • В пакете SDK для Azure 2.6 и более поздних версиях Visual Studio использует строку подключения диагностики для настройки учетной записи хранения в расширении системы диагностики Azure во время публикации. Строка подключения позволяет вам указать разные учетные записи хранения для различных конфигураций службы. Visual Studio будет использовать их во время публикации. Но подключаемый модуль диагностики больше не доступен (в пакетах Azure SDK, начиная с версии 2.5), поэтому сам CSCFG-файл уже не может включить расширение диагностики. Его нужно включать отдельно с помощью таких средств, как Visual Studio или PowerShell.
  • Выходные данные пакета Visual Studio содержат, среди прочего, общедоступный XML-файл конфигурации расширения диагностики для каждой роли. Это позволяет упростить процесс настройки расширения с помощью PowerShell. С помощью строки подключения диагностики Visual Studio получает из общедоступной конфигурации данные учетной записи хранения. Общедоступные файлы конфигураций создаются в папке Extensions с именами в формате PaaSDiagnostics.<RoleName>.PubConfig.xml. Все развертывания с использованием PowerShell могут использовать этот шаблон имени для сопоставления каждой конфигурации с ролью.
  • Строка подключения в CSCFG-файле также используется порталом Azure для обращения к диагностическим данным, поэтому она может отображаться на вкладке Мониторинг. Эта строка подключения требуется для настройки в службе отображения подробных данных мониторинга на портале.

Перенос проектов на Azure SDK версии 2.6 и выше

Когда проект переносится с Azure SDK 2.5 на Azure SDK 2.6 или более новую версию, данные учетной записи хранения диагностической информации, указанные в WADCFGX-файле, сохраняются. Чтобы воспользоваться преимуществами гибкости использования различных учетных записей хранения для разных конфигураций хранилища, необходимо вручную добавить строку подключения в проект. Если при переносе проекта на основе пакета SDK для Azure 2.4 или более ранней версии на пакет SDK для Azure 2.6 строки подключения системы диагностики сохраняются. Однако не забывайте, что в пакете SDK для Azure 2.6 строки подключения используются иначе (см. предыдущий раздел).

Определение учетной записи хранения диагностических данных в Visual Studio

  • Если в CSCFG-файле указана строка подключения диагностики, Visual Studio использует ее для настройки расширения диагностики во время публикации, а также при создании общедоступных XML-файлов конфигурации на этапе упаковки.
  • Если в CSCFG-файле строка подключения диагностики не указана, Visual Studio использует для этих же целей учетную запись хранения, указанную в WADCFGX-файле.
  • Строка подключения диагностики в CSCFG-файле имеет более высокий приоритет, чем учетная запись хранения в WADCFGX-файле. Если в CSCFG-файле присутствует строка подключения диагностики, Visual Studio использует именно ее, игнорируя учетную запись хранения в WADCFGX-файле.

Для чего используется флажок "Обновлять строки подключения хранилища разработки"?

Флажок Обновить строки подключения хранилища разработки для системы диагностики и кэширования с использованием учетных данных учетной записи хранения Microsoft Azure при публикации в Microsoft Azure предоставляет удобный способ для переключения любой учетной записи хранилища разработки на указанную во время публикации учетную запись хранения Azure.

Предположим, вы установили этот флажок, а в строке подключения диагностики указан параметр UseDevelopmentStorage=true. Когда вы будете публиковать проект в Azure, Visual Studio автоматически заменит строки подключения диагностики учетной записью хранения, которую вы указали в мастере публикации. Но если в строке подключения диагностики указана реальная учетная запись хранения, будет использоваться именно она.

Функциональные различия диагностики в Azure SDK между более ранними (до 2.4 включительно) и более поздними (с 2.5 включительно) версиями

Обновляя свой проект с Azure SDK 2.4 на Azure SDK 2.5 и выше, помните о следующих функциональных различиях.

  • API конфигурации устарели. Программная конфигурация системы диагностики доступна в пакете Azure SDK 2.4 или более ранних версиях, но она уже не поддерживается в пакете Azure SDK 2.5. Если конфигурация диагностики в вашем проекте определена в коде, после переноса проекта на более новую версию SDK все нужно настроить заново, иначе диагностика работать не будет. Azure SDK 2.4 используется файл конфигурации диагностики diagnostics.wadcfg, а Azure SDK 2.5 и более поздние версии — diagnostics.wadcfgx.
  • Диагностику для приложений облачной службы можно настроить только на уровне роли, а не на уровне экземпляра.
  • Конфигурация диагностики обновляется при каждом развертывании приложения. Если изменить конфигурацию диагностики в обозревателе сервера и повторно развернуть приложение, могут возникнуть проблемы с контролем четности.
  • В пакете Azure SDK 2.5 и более поздней версии аварийные дампы настраиваются в файле конфигурации системы диагностики, а не в коде. Если аварийные дампы настроены в коде, потребуется вручную переместить конфигурацию из кода в файл конфигурации, так как аварийные дампы не перемещаются во время миграции в Azure SDK 2,6.