Системные метрики ML Inference
В этой статье описаны дашборды и виджеты, которые строятся по системным метрикам ML Inference.
Дашборд мониторинга
Системные виджеты для мониторинга использования ресурсов инстансами ML-моделей.
Виджет |
Описание |
Легенда |
---|---|---|
CPU usage (%) |
Загрузка процессора инстансом модели в процентах. Показывает эффективность использования CPU-ресурсов и помогает определить необходимость масштабирования. |
|
Memory usage (%) |
Использование оперативной памяти инстансом в процентах. Позволяет контролировать потребление памяти и предотвращать ситуации нехватки ресурсов. |
|
GPU usage (%) |
Загрузка графического процессора при работе с GPU-ускоренными моделями. Критический показатель для оптимизации использования дорогостоящих GPU-ресурсов. |
|
Online Status |
Показатель доступности инстанса модели. Отображает, готов ли инстанс принимать и обрабатывать запросы. |
|
RPS (1/s) |
Количество запросов в секунду (Requests Per Second). Показывает интенсивность нагрузки на инстанс и помогает планировать масштабирование. |
Общее количество HTTP-запросов к инстансу за секунду. |
Request Latency (ms) |
Время ответа на запросы в миллисекундах. Показывает, как быстро инстанс обрабатывает входящие запросы. |
Среднее время обработки запросов за выбранный период. |
Доступные метрики
Системные метрики предоставляют набор данных для мониторинга использования ресурсов и производительности инстансов ML-моделей. Все метрики экспортируются в формате Prometheus.
Доступность инстанса
Название |
Тип |
Описание |
Значения |
Назначение |
---|---|---|---|---|
inference:system:online |
gauge |
Показывает, готов ли инстанс принимать и обрабатывать запросы. |
|
Мониторинг доступности сервиса и настройка алертов при недоступности инстансов. |
Метрики ресурсов
Метрики использования вычислительных ресурсов: процессора, памяти и GPU.
Название |
Тип |
Описание |
Лейблы |
Назначение |
---|---|---|---|---|
inference:system:cpu:workcload_info |
gauge |
Информация об использовании и лимитах процессорных ресурсов. |
|
Сравнение фактического потребления CPU с выделенными ресурсами и оценка необходимости изменения лимитов. |
Название |
Тип |
Описание |
Лейблы |
Назначение |
---|---|---|---|---|
inference:system:memory:workcload_info |
gauge |
Информация об использовании и лимитах оперативной памяти. |
|
Предотвращение ошибок OOM (Out of Memory) и оптимизация выделения ресурсов. |
Название |
Тип |
Описание |
Лейблы |
Назначение |
---|---|---|---|---|
inference:system:gpu:workcload_info |
gauge |
Информация об использовании и лимитах GPU-ресурсов. |
|
Оптимизация использования дорогостоящих GPU-ресурсов (применимо только для GPU-ускоренных инстансов). |
Метрики HTTP-запросов
Название |
Тип |
Описание |
Лейблы |
Назначение |
---|---|---|---|---|
inference:system:requests_total |
gauge |
Общее количество HTTP-запросов к инстансу с группировкой по кодам ответов. |
|
Базовая метрика для анализа нагрузки и качества обработки запросов. |
Название |
Тип |
Описание |
Лейблы / Интервалы |
Назначение |
---|---|---|---|---|
inference:system:request:bytes_count |
gauge |
Количество запросов по кодам ответов |
Лейблы:
|
|
inference:system:request:bytes_sum |
gauge |
Общий размер данных запросов в байтах по кодам ответов. |
Лейблы:
|
|
inference:system:request:bytes_bucket |
gauge |
Гистограмма распределения размеров запросов по временным интервалам |
Лейблы:
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 |
Количество запросов по временным интервалам и кодам ответов. |
|
|
inference:system:request:duration_milliseconds_sum |
gauge |
Общее время обработки запросов в миллисекундах. |
|
|
inference:system:request:duration_milliseconds_bucket |
gauge |
Гистограмма распределения времени обработки запросов. |
Интервалы в миллисекундах: 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
- Дашборд мониторинга
- Доступные метрики
- Алерты и пороговые значения
- Примеры запросов