Мониторинг подключенных конечных точек
Машинное обучение 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 для поиска страницы метрик для конечной точки или развертывания.
Чтобы получить доступ к страницам метрик с помощью ссылок, доступных в студии:
Перейдите в Студию машинного обучения Azure.
На панели навигации слева выберите Конечные точки.
Выберите конечную точку, щелкнув ее имя.
Выберите "Просмотреть метрики" в разделе "Атрибуты" конечной точки, чтобы открыть страницу метрик конечной точки в портал Azure.
Выберите "Просмотреть метрики" в разделе для каждого доступного развертывания, чтобы открыть страницу метрик развертывания в портал Azure.
Чтобы получить доступ к метрикам непосредственно из портал Azure, выполните следующие действия.
Войдите на портал Azure.
Перейдите к подключенной конечной точке или ресурсу развертывания.
Сетевые конечные точки и развертывания — это ресурсы Azure Resource Manager (ARM), которые можно найти, перейдя в свою группу ресурсов. Найдите ресурсы типов Сетевая конечная точка машинного обучения и Сетевое развертывание машинного обучения.
В левом столбце выберите Метрики.
Доступные метрики
В зависимости от выбранного вами ресурса отображаемые метрики будут разными. У метрик подключенных конечных точек и подключенных развертываний разные области действия.
Метрики в области конечной точки
Категория | Metric | Имя в REST API | Единица измерения | Агрегат | Измерения | Интервалы времени | Экспорт DS |
---|---|---|---|---|---|---|---|
Трафик | Активные подключения Общее количество одновременных TCP-подключений, активных от клиентов. |
ConnectionsActive |
Count | По средней | <none> | PT1M | No |
Трафик | Ошибки сбора данных в минуту Количество событий сбора данных, отброшенных в минуту. |
DataCollectionErrorsPerMinute |
Count | Минимальное, максимальное, среднее | deployment , , reason type |
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 , , statusCode statusCodeClass modelStatusCode |
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 , , reason type |
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, включая метрики для конечной точки в Сети. Дополнительные сведения о создании панелей мониторинга и визуализации запросов см. в разделе "Панели мониторинга" с помощью данных журнала и панелей мониторинга с помощью данных приложения.
Создание оповещений
Вы также можете создавать настраиваемые оповещения для отслеживания важных изменений состояния подключенной конечной точки:
В правом верхнем углу страницы метрики выберите Новое правило генерации оповещений.
Выберите название условия, чтобы указать, когда должно срабатывать оповещение.
Выберите Добавить группы действий>Создать группы действий, чтобы указать, что должно происходить при срабатывании оповещения.
Выберите Создать правило генерации оповещений, чтобы завершить создание оповещения.
Дополнительные сведения см. в статье "Создание правил генерации оповещений 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.
На портале Azure перейдите в группу ресурсов, содержащую вашу конечную точку, а затем выберите эту конечную точку.
В разделе Мониторинг в левой части страницы выберите Параметры диагностики и нажмите Добавить параметры.
Выберите категории журналов, которые нужно включить, нажмите Отправить в рабочую область Log Analytics, а затем выберите рабочую область. Наконец заполните поле Название параметра диагностики и нажмите кнопку Сохранить.
Внимание
Для активации подключения к рабочей области Log Analytics может потребоваться до часа. Подождите час, прежде чем продолжать.
Отправьте запросы оценки на конечную точку. Это действие должно привести к добавлению записей в журналы.
В свойствах подключенной конечной точки или рабочей области Log Analytics выберите Журналы в левой части экрана.
Закройте диалоговое окно Запросы, которое открывается автоматически, а затем дважды щелкните AmlOnlineEndpointConsoleLog. Если вы не видите этот элемент, используйте поле поиска.
Выберите Выполнить.
Примеры запросов
Примеры запросов можно найти на вкладке Запросы при просмотре журналов. Чтобы найти примеры запросов, выполните поиск по словам Подключенная конечная точка.
Сведения о столбцах журнала
В таблицах ниже приведены сведения о данных, хранящихся в каждом журнале.
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 при создании конечной точки.
Связанный контент
- Узнайте, как просматривать затраты на развернутую конечную точку.
- Ознакомьтесь с дополнительными сведениями об обозревателе метрик.