Введение в мониторинг Облачных служб (классические)
Внимание
Облачные службы (классическая версия) теперь устарела для всех клиентов с 1 сентября 2024 года. Все существующие запущенные развертывания будут остановлены и завершены корпорацией Майкрософт, и данные будут постоянно потеряны начиная с октября 2024 года. Для новых развертываний следует использовать Облачные службы Azure с расширенной поддержкой. Это новая модель развертывания на основе Azure Resource Manager.
Вы можете отслеживать для облачных служб ключевые показатели производительности. Каждая роль облачной службы собирает минимальный набор данных: использование ЦП, сетевых и дисковых ресурсов. Если у облачной службы есть Microsoft.Azure.Diagnostics
расширение, примененное к роли, эта роль может собирать больше точек данных. В этой статье содержатся базовые сведения о системе диагностике Azure для облачных служб.
Базовый уровень мониторинга включает сбор данных от счетчиков производительности для экземпляра роли с интервалом в 3 минуты. Эти базовые данные мониторинга не хранятся в учетной записи хранения и не связаны с ней дополнительными затратами.
При расширенном мониторинге выборка и сбор дополнительных метрик осуществляется через интервалы 5 минут, 1 час и 12 часов. Статистические данные хранятся в таблицах в учетной записи хранения и удаляются по прошествии 10 дней. Используемая учетная запись хранения настраивается для каждой роли; для разных ролей можно использовать разные учетные записи хранения. Для настройки используется строка подключения в CSDEF-файлах и CSCFG-файлах.
Базовый мониторинг
Как мы уже упоминали во введении, облачная служба автоматически собирает основные данные мониторинга из узла виртуальной машины. Сюда входят процент использования ЦП и данные операций сетевого ввода-вывода и дискового чтения/записи. Собранные данные мониторинга автоматически отображаются на портале Azure на странице общих сведений и метрик для облачной службы.
Для базового мониторинга не требуется учетная запись хранения.
Расширенный мониторинг
Для расширенного мониторинга требуется использовать расширение системы диагностики Azure (а также, при необходимости, пакет SDK для Application Insights) для тех ролей, которые вы хотите отслеживать. Расширение диагностики использует файл конфигурации (отдельный для каждой роли) с именем diagnostics.wadcfgx, в котором можно настроить собираемые метрики диагностики. Расширение диагностики Azure собирает и хранит данные в учетной записи хранения Azure. Эти параметры настраиваются в WADCFGX-, CSDEF- и CSCFG- файлах. Это означает, что существует дополнительная стоимость, связанная с расширенным мониторингом.
При создании каждой роли Visual Studio добавляет в нее расширение системы диагностики Azure. Расширение диагностики может собирать данные следующих типов:
- настраиваемые счетчики производительности;
- Журналы приложений
- журналы событий Windows;
- источник событий .NET;
- журналы службы IIS (IIS)
- Трассировка событий на основе манифеста для Windows (ETW)
- пользовательские журналы ошибок.
Внимание
Все эти данные собираются в учетной записи хранения, но портал не содержит встроенных средств для их визуализации. Настоятельно рекомендуем интегрировать в приложение другую службу, например Application Insights.
Настройка расширения системы диагностики
Если у вас еще нет классической учетной записи хранения, создайте ее. Для создания учетной записи хранения обязательно используйте классическую модель развертывания.
Затем перейдите к ресурсу Учетная запись хранения (классика). Выберите Параметры>Ключи доступа и скопируйте значение Основная строка подключения. Это значение вы примените для облачной службы.
Чтобы включить расширенную диагностику, необходимо внести изменения в два файла конфигурации: ServiceDefinition.csdef и ServiceConfiguration.cscfg.
ServiceDefinition.csdef
Добавьте в файл ServiceDefinition.csdef новый параметр Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString
для каждой роли, которая использует расширенную диагностику. Visual Studio автоматически добавляет это значение в файл при создании нового проекта. Если он отсутствует, его можно добавить.
<ServiceDefinition name="AnsurCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
<WorkerRole name="WorkerRoleWithSBQueue1" vmsize="Small">
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
Этот фрагмент определяет новый параметр, который необходимо добавить в каждый файл ServiceConfiguration.cscfg .
Скорее всего, у вас есть два CSCFG-файла. Один из них (с именем ServiceConfiguration.cloud.cscfg) используется для развертывания в Azure, а другой (с именем ServiceConfiguration.local.cscfg) — для локальных развертываний в эмулированной среде. Откройте для редактирования каждый файл .cscfg. Добавьте в них параметр с именем Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString
. Задайте значение основной строки подключения классической учетной записи хранения. Если вы хотите использовать локальное хранилище на компьютере разработки, используйте значение UseDevelopmentStorage=true
.
<ServiceConfiguration serviceName="AnsurCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2015-04.2.6">
<Role name="WorkerRoleWithSBQueue1">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=KWwkdfmskOIS240jnBOeeXVGHT9QgKS4kIQ3wWVKzOYkfjdsjfkjdsaf+sddfwwfw+sdffsdafda/w==" />
<!-- or use the local development machine for storage
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
-->
Использование Application Insights
При публикации облачной службы из Visual Studio можно отправить диагностические данные в Application Insights. Можно отправить данные в уже существующий ресурс Application Insights или создать новый ресурс Azure в рамках процесса публикации. Application Insights может отслеживать облачную службу для доступности, производительности, сбоев и использования. Также в Application Insights можно добавлять пользовательские диаграммы, чтобы контролировать по ним самые важные данные. Чтобы получить данные об экземпляре роли, добавьте в проект облачной службы пакет SDK для Application Insights. Дополнительные сведения об интеграции с Application Insights см. в статье Application Insights для облачных служб Azure.
Хотя вы можете использовать Application Insights для отображения счетчиков производительности (и других параметров), указанных через расширение Microsoft Диагностика Azure, вы получаете более широкий интерфейс, интегрируя пакет SDK Application Insights в рабочие и веб-роли.