Системные метрики 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
- Дашборд мониторинга
- Доступные метрики
- Алерты и пороговые значения
- Примеры запросов