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

Машинное обучение 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. В левом столбце выберите Метрики.

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

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

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

Категория Metric Имя в REST API Единица измерения Агрегат Измерения Интервалы времени Экспорт DS
Трафик Активные подключения

Общее количество одновременных TCP-подключений, активных от клиентов.
ConnectionsActive Count По средней <none> PT1M No
Трафик Ошибки сбора данных в минуту

Количество событий сбора данных, отброшенных в минуту.
DataCollectionErrorsPerMinute Count Минимальное, максимальное, среднее deployment, , reasontype PT1M No
Трафик События сбора данных в минуту

Количество событий сбора данных, обрабатываемых в минуту.
DataCollectionEventsPerMinute Count Минимальное, максимальное, среднее deployment, type PT1M No
Трафик Сетевые байты

Байты в секунду, обслуживаемые для конечной точки.
NetworkBytes BytesPerSecond По средней <none> PT1M No
Трафик Новые подключения в секунду

Среднее число новых TCP-подключений в секунду, установленных от клиентов.
NewConnectionsPerSecond Число/с По средней <none> PT1M No
Трафик Задержка запроса

Средний полный интервал времени, который требуется для ответа запроса в миллисекундах
RequestLatency Миллисекунды По средней deployment PT1M Да
Трафик Задержка запроса P50

Средняя задержка запроса P50, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени
RequestLatency_P50 Миллисекунды По средней deployment PT1M Да
Трафик Задержка запроса P90

Средняя задержка запроса P90, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени
RequestLatency_P90 Миллисекунды По средней deployment PT1M Да
Трафик Задержка запроса P95

Средняя задержка запроса P95, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени
RequestLatency_P95 Миллисекунды По средней deployment PT1M Да
Трафик Задержка запроса P99

Средняя задержка запроса P99, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени
RequestLatency_P99 Миллисекунды По средней deployment PT1M Да
Трафик Запросы в минуту

Количество запросов, отправленных в интернет-конечную точку в течение минуты
RequestsPerMinute Count По средней deployment, , statusCodestatusCodeClassmodelStatusCode PT1M No

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

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

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

Дополнительные сведения см. в разделе "Проблемы с ограничением пропускной способности".

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

Категория Metric Имя в REST API Единица измерения Агрегат Измерения Интервалы времени Экспорт DS
Ресурс Процент использования памяти ЦП

Процент использования памяти в экземпляре. Сведения об использовании поступают каждую минуту.
CpuMemoryUtilizationPercentage Процент Минимальное, максимальное, среднее instanceId PT1M Да
Ресурс Процент использования ЦП

Процент использования ЦП на экземпляре. Сведения об использовании поступают каждую минуту.
CpuUtilizationPercentage Процент Минимальное, максимальное, среднее instanceId PT1M Да
Ресурс Ошибки сбора данных в минуту

Количество событий сбора данных, отброшенных в минуту.
DataCollectionErrorsPerMinute Count Минимальное, максимальное, среднее instanceId, , reasontype PT1M No
Ресурс События сбора данных в минуту

Количество событий сбора данных, обрабатываемых в минуту.
DataCollectionEventsPerMinute Count Минимальное, максимальное, среднее instanceId, type PT1M No
Ресурс Емкость развертывания

Число экземпляров в развертывании.
DeploymentCapacity Count Минимальное, максимальное, среднее instanceId, State PT1M No
Ресурс Использование дисков

Процент использования диска в экземпляре. Сведения об использовании поступают каждую минуту.
DiskUtilization Процент Минимальное, максимальное, среднее instanceId, disk PT1M Да
Ресурс Энергия GPU в Joules

Интервальное энергопотребления в джоулях на узле GPU. Сведения об энергопотреблении поступают каждую минуту.
GpuEnergyJoules Count Минимальное, максимальное, среднее instanceId PT1M No
Ресурс Процент использования памяти GPU

Процент использования памяти GPU на экземпляре. Сведения об использовании поступают каждую минуту.
GpuMemoryUtilizationPercentage Процент Минимальное, максимальное, среднее instanceId PT1M Да
Ресурс Процент использования GPU

Процент использования GPU на экземпляре. Сведения об использовании поступают каждую минуту.
GpuUtilizationPercentage Процент Минимальное, максимальное, среднее instanceId PT1M Да
Трафик Задержка запроса P50

Средняя задержка запроса P50, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени
RequestLatency_P50 Миллисекунды По средней <none> PT1M Да
Трафик Задержка запроса P90

Средняя задержка запроса P90, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени
RequestLatency_P90 Миллисекунды По средней <none> PT1M Да
Трафик Задержка запроса P95

Средняя задержка запроса P95, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени
RequestLatency_P95 Миллисекунды По средней <none> PT1M Да
Трафик Задержка запроса P99

Средняя задержка запроса P99, агрегированная по всем значениям задержки запроса, собранным за выбранный период времени
RequestLatency_P99 Миллисекунды По средней <none> PT1M Да
Трафик Запросы в минуту

Количество запросов, отправленных в интернет-развертывание в течение минуты
RequestsPerMinute Count По средней envoy_response_code PT1M No

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

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 при создании конечной точки.

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