Поделиться через


Мониторинг подключенных конечных точек

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

  • Метрики: для метрик на уровне конечной точки, таких как задержка запросов, запросы в минуту, новые подключения в секунду и сетевые байты, можно просмотреть подробные сведения на уровне развертывания или уровне состояния. Метрики уровня развертывания, такие как использование ЦП/ GPU и использование памяти или диска, также можно детализировать до уровня экземпляра. Azure Monitor позволяет отслеживать эти метрики на диаграммах и настраивать панели мониторинга и оповещения для дальнейшего анализа.

  • Журналы. Вы можете отправлять метрики в рабочую область Log Analytics, где можно запрашивать журналы с помощью синтаксиса запросов Kusto. Вы также можете отправлять метрики в служба хранилища Azure учетные записи и (или) Центры событий для дальнейшей обработки. Кроме того, можно использовать выделенные таблицы журналов для событий, связанных с веб-конечной точкой, трафика и журналов консоли (контейнера). Запрос Kusto позволяет выполнять сложный анализ и присоединение нескольких таблиц.

  • Application Insights: курируемые среды включают интеграцию с Application Insights, и вы можете включить или отключить эту интеграцию при создании онлайн-развертывания. Встроенные метрики и журналы отправляются в Application Insights, а для дальнейшего анализа можно использовать встроенные функции Application Insights (например, динамические метрики, поиск транзакций, сбои и производительность).

В этой статье раскрываются следующие темы:

  • Выбор подходящего метода для просмотра и отслеживания метрик и журналов
  • Просмотр метрик для подключенной конечной точки
  • Создание панели мониторинга для метрик
  • Создание оповещения для метрики
  • Просмотр журналов для конечной точки в Интернете
  • Использование Application Insights для отслеживания метрик и журналов

Необходимые компоненты

  • Развертывание подключенной конечной точки Машинного обучения Azure.
  • У вас должен быть как минимум доступ для чтения к конечной точке.

Метрики

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

Чтобы получить доступ к страницам метрик с помощью ссылок, доступных в студии:

  1. Перейдите в Студию машинного обучения Azure.

  2. На панели навигации слева выберите Конечные точки.

  3. Выберите конечную точку, щелкнув ее имя.

  4. Выберите "Просмотреть метрики" в разделе "Атрибуты" конечной точки, чтобы открыть страницу метрик конечной точки в портал Azure.

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

    Снимок экрана: доступ к метрикам конечной точки и развертывания из пользовательского интерфейса студии.

Чтобы получить доступ к метрикам непосредственно из портал Azure, выполните следующие действия.

  1. Войдите на портал Azure.

  2. Перейдите к подключенной конечной точке или ресурсу развертывания.

    Сетевые конечные точки и развертывания — это ресурсы Azure Resource Manager (ARM), которые можно найти, перейдя в свою группу ресурсов. Найдите ресурсы типов Сетевая конечная точка машинного обучения и Сетевое развертывание машинного обучения.

  3. В левом столбце выберите Метрики.

Доступные метрики

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

Метрики в области конечной точки

  • Движение
Идентификатор метрики Единица измерения Description Агрегатный метод Разделение по Примеры оповещений метрик
RequestsPerMinute Count Количество запросов, отправленных в конечную точку в течение минуты По средней Развертывание, ModelStatusCode, StatusCode, StatusCode, StatusCodeClass Оповещать меня, когда у меня есть <= 0 транзакций в системе
RequestLatency Миллисекунды Полный интервал времени, затраченный на ответ на запрос По средней Развертывание Оповещение меня, если средняя задержка > составляет 2 с
RequestLatency_P50 Миллисекунды Задержка запроса на 50-й процентиль, агрегированная всеми значениями задержки запроса, собранными в течение 60 секунд По средней Развертывание Оповещение меня, если средняя задержка > составляет 2 с
RequestLatency_P90 Миллисекунды Задержка запроса на 90-й процентиль, агрегированная всеми значениями задержки запроса, собранными в течение 60 секунд По средней Развертывание Оповещение меня, если средняя задержка > составляет 2 с
RequestLatency_P95 Миллисекунды Задержка запроса на 95-й процентиль, агрегированная всеми значениями задержки запроса, собранными в течение 60 секунд По средней Развертывание Оповещение меня, если средняя задержка > составляет 2 с
RequestLatency_P99 Миллисекунды Задержка запроса на 99-й процентиль, агрегированная всеми значениями задержки запроса, собранными в течение 60 секунд По средней Развертывание Оповещение меня, если средняя задержка > составляет 2 с
  • Сеть
Идентификатор метрики Единица измерения Description Агрегатный метод Разделение по Примеры оповещений метрик
NetworkBytes Байты в секунду Байты в секунду, обслуживаемые для конечной точки По средней - -
ConnectionsActive Count Общее количество одновременных TCP-подключений, активных от клиентов По средней - -
NewConnectionsPerSecond Count Среднее число новых TCP-подключений в секунду, установленное из клиентов По средней - -
  • Сбор данных модели
Идентификатор метрики Единица измерения Description Агрегатный метод Разделение по Примеры оповещений метрик
DataCollectionEventsPerMinute Count Количество событий сбора данных, обрабатываемых в минуту По средней Развертывание, тип -
DataCollectionErrorsPerMinute Count Количество событий сбора данных, отброшенных в минуту По средней Развертывание, тип, причина -

Например, можно разделить по измерению развертывания, чтобы сравнить задержку запроса различных развертываний в конечной точке.

Регулирование пропускной способности

Пропускная способность будет регулироваться, если квоты превышаются для управляемых сетевых конечных точек. Дополнительные сведения об ограничениях см. в статье об ограничениях для конечных точек в Сети. Чтобы определить, выполняется ли регулирование запросов, выполните следующие действия:

  • Мониторинг метрики "Передача байтов по сети"
  • Прицепы ответов будут иметь поля: ms-azureml-bandwidth-request-delay-ms и ms-azureml-bandwidth-response-delay-ms. Значения полей — это задержки (в миллисекундах) регулирования полосы пропускания. Дополнительные сведения см. в разделе "Проблемы с ограничением пропускной способности".

Метрики в области развертывания

  • Насыщение
Идентификатор метрики Единица измерения Description Агрегатный метод Разделение по Примеры оповещений метрик
CpuUtilizationPercentage Процент Сколько процентов ЦП было использовано Минимун, максимум, среднее InstanceId Оповещает меня, когда % емкости используется > 75 %
CpuMemoryUtilizationPercentage Процент Сколько процентов памяти было использовано Минимун, максимум, среднее InstanceId
Использование диска Процент Сколько дискового пространства было использовано Минимун, максимум, среднее InstanceId, Disk
GpuUtilizationPercentage Процент Процент использования GPU в экземпляре. Использование сообщается в течение одной минуты Минимун, максимум, среднее InstanceId
GpuMemoryUtilizationPercentage Процент Процент использования памяти GPU в экземпляре. Использование сообщается через одну минуту. Минимун, максимум, среднее InstanceId
GpuEnergyJoules Джоуль Энергия интервала в Джоулях на узле GPU — энергия сообщается через одну минуту. Минимун, максимум, среднее InstanceId
  • Доступность
Идентификатор метрики Единица измерения Description Агрегатный метод Разделение по Примеры оповещений метрик
DeploymentCapacity Count Количество экземпляров в развертывании Минимальное, максимальное, среднее InstanceId, State Оповещает меня, когда процент доступности моей службы снижается ниже 100 %
  • Движение
Идентификатор метрики Единица измерения Description Агрегатный метод Разделение по Примеры оповещений метрик
RequestsPerMinute Count Количество запросов, отправленных в интернет-развертывание в течение минуты По средней StatusCode Оповещать меня, когда у меня есть <= 0 транзакций в системе
RequestLatency_P50 Миллисекунды Средняя задержка запроса P50, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени По средней - Оповещение меня, если средняя задержка > составляет 2 с
RequestLatency_P90 Миллисекунды Средняя задержка запроса P90, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени По средней - Оповещение меня, если средняя задержка > составляет 2 с
RequestLatency_P95 Миллисекунды Средняя задержка запроса P95, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени По средней - Оповещение меня, если средняя задержка > составляет 2 с
RequestLatency_P99 Миллисекунды Средняя задержка запроса P99, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени По средней - Оповещение меня, если средняя задержка > составляет 2 с
  • Сбор данных модели
Идентификатор метрики Единица измерения Description Агрегатный метод Разделение по Примеры оповещений метрик
DataCollectionEventsPerMinute Count Количество событий сбора данных, обрабатываемых в минуту По средней InstanceId, Type -
DataCollectionErrorsPerMinute Count Количество событий сбора данных, отброшенных в минуту По средней InstanceId, Type, Reason -

Например, можно сравнить использование ЦП и (или) памяти между экземплярами разницы для сетевого развертывания.

Создание панелей мониторинга и оповещений

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

Создание панелей мониторинга и визуализация запросов

Вы можете создавать пользовательские панели мониторинга и визуализировать метрики из нескольких источников в портал Azure, включая метрики для конечной точки в Сети. Дополнительные сведения о создании панелей мониторинга и визуализации запросов см. в разделе "Панели мониторинга" с помощью данных журнала и панелей мониторинга с помощью данных приложения.

Создание оповещений

Вы также можете создавать настраиваемые оповещения для отслеживания важных изменений состояния подключенной конечной точки:

  1. В правом верхнем углу страницы метрики выберите Новое правило генерации оповещений.

    Снимок экрана: кнопка

  2. Выберите название условия, чтобы указать, когда должно срабатывать оповещение.

    Снимок экрана: кнопка

  3. Выберите Добавить группы действий>Создать группы действий, чтобы указать, что должно происходить при срабатывании оповещения.

  4. Выберите Создать правило генерации оповещений, чтобы завершить создание оповещения.

Дополнительные сведения см. в статье "Создание правил генерации оповещений Azure Monitor".

Включение автомасштабирования на основе метрик

Вы можете включить автомасштабирование развертываний с помощью метрик с помощью пользовательского интерфейса или кода. При использовании кода (CLI или ПАКЕТА SDK) можно использовать идентификаторы метрик, перечисленные в таблице доступных метрик в состоянии активации автомасштабирования. Дополнительные сведения см. в разделе "Автомасштабирование сетевых конечных точек".

Журналы

Для подключенных конечных точек можно включить три журнала:

  • AmlOnlineEndpointTrafficLog: вы можете включить журналы трафика, если вы хотите проверить сведения о запросе. Ниже описаны некоторые случаи.

    • Если ответ не имеет значения 200, проверьте значение столбца ResponseCodeReason, чтобы узнать, что произошло. Также проверьте причину в разделе "Коды состояния HTTPS" статьи Устранение неполадок с подключенными конечными точками.

    • Вы можете проверить код ответа и причину ответа модели из столбца ModelStatusCode и ModelStatusReason.

    • Вам требуется проверить длительность запроса, например общую его длительность, длительность запроса и отклика, а также задержку, вызванную регулированием полосы пропускания сети. Эти данные можно проверить в журналах, чтобы оценить задержку разбивки.

    • Вы хотите проверить общее количество запросов или число неудачных запросов за последнее время. Вы также можете включить журналы.

  • AmlOnlineEndpointConsoleLog: содержит журналы, выходные контейнеры в консоль. Ниже описаны некоторые случаи.

    • Если контейнер не удается запустить, журнал консоли может быть полезен для отладки.

    • Отслеживайте поведение контейнера на предмет правильной обработки всех запросов.

    • Запишите идентификаторы запросов в журнал консоли. Присоединение идентификатора запроса, AmlOnlineEndpointConsoleLog и AmlOnlineEndpointTrafficLog в рабочей области Log Analytics, можно отслеживать запрос из точки входа сети в контейнер.

    • Этот журнал также можно использовать для анализа производительности при определении времени, необходимого модели для обработки каждого запроса.

  • AmlOnlineEndpointEventLog: содержит сведения о событиях жизненного цикла контейнера. В настоящее время мы предоставляем сведения о перечисленных ниже видах событий.

    Имя. Сообщение
    Откат Откат перезапуска контейнера, который завершился сбоем
    Извлечено Образ контейнера <IMAGE_NAME> уже присутствует на компьютере
    Завершение Сервер вывода контейнера не прошел пробу активности и будет перезапущен
    Создание Создан контейнер image-fetcher
    Создание Создан контейнер inference-server
    Создание Создан контейнер model-mount
    LivenessProbeFailed Сбой пробы активности: <FAILURE_CONTENT>
    ReadinessProbeFailed Сбой пробы готовности: <FAILURE_CONTENT>
    Запуск Запущен контейнер image-fetcher
    Запуск Запущен контейнер inference-server
    Запуск Запущен контейнер model-mount
    Завершение Остановка контейнера inference-server
    Завершение Остановка контейнера model-mount

Включение и отключение журналов

Внимание

Функция ведения журналов использует Azure Log Analytics. Если у вас нет рабочей области Log Analytics, ее можно создать, выполнив действия, описанные в разделе Создание рабочей области Log Analytics на портале Azure.

  1. На портале Azure перейдите в группу ресурсов, содержащую вашу конечную точку, а затем выберите эту конечную точку.

  2. В разделе Мониторинг в левой части страницы выберите Параметры диагностики и нажмите Добавить параметры.

  3. Выберите категории журналов, которые нужно включить, нажмите Отправить в рабочую область Log Analytics, а затем выберите рабочую область. Наконец заполните поле Название параметра диагностики и нажмите кнопку Сохранить.

    Снимок экрана: диалоговое окно параметров диагностики.

    Внимание

    Для активации подключения к рабочей области Log Analytics может потребоваться до часа. Подождите час, прежде чем продолжать.

  4. Отправьте запросы оценки на конечную точку. Это действие должно привести к добавлению записей в журналы.

  5. В свойствах подключенной конечной точки или рабочей области Log Analytics выберите Журналы в левой части экрана.

  6. Закройте диалоговое окно Запросы, которое открывается автоматически, а затем дважды щелкните AmlOnlineEndpointConsoleLog. Если вы не видите этот элемент, используйте поле поиска.

    Снимок экрана: запросы к журналу.

  7. Выберите Выполнить.

    Снимок экрана: результаты после выполнения запроса.

Примеры запросов

Примеры запросов можно найти на вкладке Запросы при просмотре журналов. Чтобы найти примеры запросов, выполните поиск по словам Подключенная конечная точка.

Снимок экрана: примеры запросов.

Сведения о столбцах журнала

В таблицах ниже приведены сведения о данных, хранящихся в каждом журнале.

AmlOnlineEndpointTrafficLog

Свойство Description
Способ Запрошенный клиентом метод.
Путь Запрошенный клиентом путь.
SubscriptionId Идентификатор подписки службы машинного обучения для подключенной конечной точки.
AzureMLWorkspaceId Идентификатор рабочей области службы машинного обучения для подключенной конечной точки.
AzureMLWorkspaceName Имя рабочей области машинного обучения для конечной точки в Сети.
EndpointName Имя подключенной конечной точки.
DeploymentName Имя сетевого развертывания.
Протокол Протокол запроса.
ResponseCode Окончательный код отклика, возвращенный клиенту.
ResponseCodeReason Окончательная причина кода отклика, возвращенная клиенту.
ModelStatusCode Код состояния отклика от модели.
ModelStatusReason Причина состояния отклика от модели.
RequestPayloadSize Общее количество байтов, полученных от клиента.
ResponsePayloadSize Общее количество байтов, отправленных клиенту.
UserAgent Заголовок пользовательского агента запроса, включая примечания, но усечен до максимума 70 символов.
XRequestId Идентификатор запроса, созданный службой "Машинное обучение Azure" для внутренней трассировки.
XMSClientRequestId Идентификатор отслеживания, созданный клиентом.
TotalDurationMs Длительность в миллисекундах от момента начала запроса до отправки клиенту последнего байта ответа. В случае отключения клиента измеряется время с начала до момента отключения клиента.
RequestDurationMs Длительность в миллисекундах от момента начала запроса до получения от клиента последнего байта запроса.
ResponseDurationMs Длительность в миллисекундах от времени начала запроса до считывания первого байта ответа из модели.
RequestThrottlingDelayMs Задержка в миллисекундах при передаче данных запроса из-за регулирования пропускной способности сети.
ResponseThrottlingDelayMs Задержка в миллисекундах при передаче данных ответа из-за регулирования пропускной способности сети.

AmlOnlineEndpointConsoleLog

Свойство Description
TimeGenerated Метка времени создания журнала (в формате UTC).
OperationName Операция, связанная с записью журнала.
InstanceId Идентификатор экземпляра, создавшего эту запись журнала.
DeploymentName Название развертывания, связанного с записью журнала.
ContainerName Название контейнера, в котором был создан журнал.
Сообщение Содержимое журнала.

AmlOnlineEndpointEventLog

Свойство Description
TimeGenerated Метка времени создания журнала (в формате UTC).
OperationName Операция, связанная с записью журнала.
InstanceId Идентификатор экземпляра, создавшего эту запись журнала.
DeploymentName Название развертывания, связанного с записью журнала.
Имя. Имя события.
Сообщение Содержимое события.

Использование Application Insights

Проверенные среды включают интеграцию с Application Insights, и вы можете включить или отключить эту интеграцию при создании сетевого развертывания. Встроенные метрики и журналы отправляются в Application Insights, а для дальнейшего анализа можно использовать встроенные функции Application Insights (например, динамические метрики, поиск транзакций, сбои и производительность).

Дополнительные сведения см. в обзоре Application Insights.

В студии можно использовать вкладку "Мониторинг " на странице веб-конечной точки, чтобы просмотреть графы мониторов активности высокого уровня для управляемой конечной точки в Сети. Чтобы использовать вкладку мониторинга, необходимо выбрать параметр Enable Application Insights diagnostic and data collection при создании конечной точки.

Снимок экрана: мониторинг метрик уровня конечной точки в студии.