nav-img
Evolution

Системные метрики ML Inference

В этой статье описаны дашборды и виджеты, которые строятся по системным метрикам ML Inference.

Дашборд мониторинга

Системные виджеты для мониторинга использования ресурсов инстансами ML-моделей.

Виджет

Описание

Легенда

CPU usage (%)

Загрузка процессора инстансом модели в процентах.

Показывает эффективность использования CPU-ресурсов и помогает определить необходимость масштабирования.

  • Usage — текущее использование CPU.

  • Limit — установленный лимит CPU для инстанса.

Memory usage (%)

Использование оперативной памяти инстансом в процентах.

Позволяет контролировать потребление памяти и предотвращать ситуации нехватки ресурсов.

  • Usage — текущее использование памяти.

  • Limit — установленный лимит памяти для инстанса.

GPU usage (%)

Загрузка графического процессора при работе с GPU-ускоренными моделями.

Критический показатель для оптимизации использования дорогостоящих GPU-ресурсов.

  • Usage — текущее использование GPU.

  • Limit — доступные GPU-ресурсы для инстанса.

Online Status

Показатель доступности инстанса модели.

Отображает, готов ли инстанс принимать и обрабатывать запросы.

  • 1 — инстанс онлайн и готов к работе.

  • 0 — инстанс недоступен или не готов.

RPS (1/s)

Количество запросов в секунду (Requests Per Second).

Показывает интенсивность нагрузки на инстанс и помогает планировать масштабирование.

Общее количество HTTP-запросов к инстансу за секунду.

Request Latency (ms)

Время ответа на запросы в миллисекундах.

Показывает, как быстро инстанс обрабатывает входящие запросы.

Среднее время обработки запросов за выбранный период.

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

Системные метрики предоставляют набор данных для мониторинга использования ресурсов и производительности инстансов ML-моделей. Все метрики экспортируются в формате Prometheus.

Доступность инстанса

Название

Тип

Описание

Значения

Назначение

inference:system:online

gauge

Показывает, готов ли инстанс принимать и обрабатывать запросы.

  • 1 — инстанс онлайн и готов к работе;

  • 0 — инстанс недоступен или находится в процессе запуска.

Мониторинг доступности сервиса и настройка алертов при недоступности инстансов.

Метрики ресурсов

Метрики использования вычислительных ресурсов: процессора, памяти и GPU.

CPU (Процессор)

Название

Тип

Описание

Лейблы

Назначение

inference:system:cpu:workcload_info

gauge

Информация об использовании и лимитах процессорных ресурсов.

  • limit — установленный лимит CPU для инстанса (в ядрах);

  • usage — текущее использование CPU инстансом (в ядрах).

Сравнение фактического потребления CPU с выделенными ресурсами и оценка необходимости изменения лимитов.

Memory (Оперативная память)

Название

Тип

Описание

Лейблы

Назначение

inference:system:memory:workcload_info

gauge

Информация об использовании и лимитах оперативной памяти.

  • limit — установленный лимит памяти для инстанса (в байтах);

  • usage — текущее использование памяти инстансом (в байтах).

Предотвращение ошибок OOM (Out of Memory) и оптимизация выделения ресурсов.

GPU (Графический процессор)

Название

Тип

Описание

Лейблы

Назначение

inference:system:gpu:workcload_info

gauge

Информация об использовании и лимитах GPU-ресурсов.

  • limit — доступные GPU ресурсы для инстанса;

  • usage — текущее использование GPU инстансом.

Оптимизация использования дорогостоящих GPU-ресурсов (применимо только для GPU-ускоренных инстансов).

Метрики HTTP-запросов

Количество запросов

Название

Тип

Описание

Лейблы

Назначение

inference:system:requests_total

gauge

Общее количество HTTP-запросов к инстансу с группировкой по кодам ответов.

  • response_code — HTTP-код ответа (200, 404, 500, и т.д.).

Базовая метрика для анализа нагрузки и качества обработки запросов.

Размер запросов

Название

Тип

Описание

Лейблы / Интервалы

Назначение

inference:system:request:bytes_count

gauge

Количество запросов по кодам ответов

Лейблы:

  • response_code — HTTP-код ответа.

inference:system:request:bytes_sum

gauge

Общий размер данных запросов в байтах по кодам ответов.

Лейблы:

  • response_code — HTTP-код ответа.

inference:system:request:bytes_bucket

gauge

Гистограмма распределения размеров запросов по временным интервалам

Лейблы:

  • response_code — HTTP-код ответа.

  • le — верхняя граница интервала гистограммы.

Интервалы (байты):

0.5, 1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 25000, 60000, 300000, 600000, 1800000, 3600000, +Inf

Анализ характера входящих данных и оптимизация обработки запросов разного размера

Время выполнения запросов

Название

Тип

Описание

Лейблы

Назначение

inference:system:request:duration_milliseconds_count

gauge

Количество запросов по временным интервалам и кодам ответов.

  • response_code — HTTP-код ответа.

inference:system:request:duration_milliseconds_sum

gauge

Общее время обработки запросов в миллисекундах.

  • response_code — HTTP-код ответа.

inference:system:request:duration_milliseconds_bucket

gauge

Гистограмма распределения времени обработки запросов.

  • response_code — HTTP-код ответа;

  • le — верхняя граница интервала гистограммы в миллисекундах.

Интервалы в миллисекундах:

0.5, 1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 30000, 60000, 300000, 600000, 1800000, 3600000, +Inf

Мониторинг производительности ML-моделей и выявление проблем с latency.

Общие лейблы

Все системные метрики содержат следующие идентификационные лейблы:

  • id — уникальный идентификатор инстанса модели;

  • instance — номер инстанса;

  • name — имя инстанса модели;

  • product_name — название продукта (inference:model-run или inference:docker-run);

  • product_type — тип продукта (ml_inference);

  • project_id — идентификатор проекта.

Алерты и пороговые значения

Рекомендуемые алерты для мониторинга системных ресурсов

Алерт

Пороговые значения

Высокое использование CPU

Загрузка процессора > 80 %

Высокое использование памяти

Использование памяти > 85 %

Высокое время ответа

Среднее время ответа > 5 секунд

Недоступность инстанса

online == 0

Высокий процент ошибок

Количество 4xx/5xx-кодов > 5 %

Основные виджеты дашборда

Загрузка CPU (%)

(usage/limit) * 100

Использование памяти (%)

(usage/limit) * 100

Использование GPU (%)

(usage/limit) * 100

RPS

Производная от requests_total

Среднее время ответа

duration_sum / duration_count

Для анализа производительности используйте:

  • гистограммы времени ответа для выявления паттернов;

  • гистограммы размеров запросов для оптимизации;

  • корреляция между размером запроса и временем обработки.

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

Ниже приведены примеры PromQL-запросов для работы с системными метриками:

  • Использование CPU в процентах:

    (inference:system:cpu:workcload_info{metric="usage"} / inference:system:cpu:workcload_info{metric="limit"}) * 100

  • RPS по инстансам:

    rate(inference:system:requests_total[5m])

  • 95-й перцентиль времени ответа:

    histogram_quantile(0.95, rate(inference:system:request:duration_milliseconds_bucket[5m]))

  • Процент ошибочных запросов:

    (rate(inference:system:requests_total{response_code!="200"}[5m]) / rate(inference:system:requests_total[5m])) * 100