Мониторинг Model RUN Diffusers
В этой статье описаны дашборды и виджеты, которые строятся по метрикам Model RUN Diffusers ML Inference.
Дашборд мониторинга
Базовый дашборд мониторинга содержит ключевые виджеты для контроля производительности Diffusers-моделей.
Виджет |
Описание |
Легенда |
---|---|---|
E2E Request Latency (1m) |
Время ответа на запросы инференса от начала до конца за последнюю минуту. Показывает полную задержку обработки запроса, включая время сетевой передачи, очереди и непосредственно генерации изображения. Для Diffusers-моделей этот показатель обычно выше из-за специфики генеративных задач. |
Среднее время обработки запросов инференса за минуту в секундах. |
Inference Throughput (1m) |
Пропускная способность инференса за последнюю минуту. Отображает количество успешно обработанных запросов генерации изображений в единицу времени. Для Diffusers-моделей этот показатель ниже, чем для Transformers, из-за более сложных вычислений. |
Количество запросов инференса в секунду за последнюю минуту. |
Доступные метрики
MLServer предоставляет полный набор метрик для мониторинга всех аспектов работы Diffusers-моделей. Все метрики экспортируются в формате Prometheus.
Метрики времени выполнения инференса
Название |
Тип |
Описание |
Лейблы |
Назначение |
Пример метрики |
Пример использования |
---|---|---|---|---|---|---|
inference:model_run:mlserver:model_infer_request_duration_count |
counter |
Общее количество запросов инференса к модели генерации изображений. |
|
Подсчет общего количества обработанных запросов генерации для анализа нагрузки на Diffusers-модели. |
inference:model_run:mlserver:model_infer_request_duration_count{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",model="model-run-mbstc-stiff",version="None"} 485 |
Количество запросов генерации в секунду: rate(inference:model_run:mlserver:model_infer_request_duration_count[5m]) Общее количество генераций за день: increase(inference:model_run:mlserver:model_infer_request_duration_count[24h]) |
inference:model_run:mlserver:model_infer_request_duration_sum |
counter |
Общее время, потраченное на выполнение всех запросов генерации изображений, в секундах. |
|
Расчет среднего времени генерации изображений и анализ производительности Diffusers-моделей. |
inference:model_run:mlserver:model_infer_request_duration_sum{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",model="model-run-mbstc-stiff",version="None"} 2847.5 |
Среднее время генерации изображения: rate(inference:model_run:mlserver:model_infer_request_duration_sum[5m]) / rate(inference:model_run:mlserver:model_infer_request_duration_count[5m]) Общее время GPU, потраченное на генерацию за час: increase(inference:model_run:mlserver:model_infer_request_duration_sum[1h]) |
Метрики HTTP-запросов
Название |
Тип |
Описание |
Лейблы |
Назначение |
Пример метрики |
Пример использования |
---|---|---|---|---|---|---|
inference:model_run:mlserver:rest_server_requests_total |
counter |
Общее количество HTTP-запросов к серверу генеративной модели. |
|
Анализ общей нагрузки на HTTP API генеративных моделей и мониторинг качества обработки запросов. |
inference:model_run:mlserver:rest_server_requests_total{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",method="POST",path="/v2/models/{model_name}/infer",status_code="200"} 485 inference:model_run:mlserver:rest_server_requests_total{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",method="GET",path="/v2/models/{model_name}/ready",status_code="200"} 95 |
RPS для запросов генерации: rate(inference:model_run:mlserver:rest_server_requests_total{path="/v2/models/{model_name}/infer"}[5m]) Процент ошибочных запросов генерации: (rate(inference:model_run:mlserver:rest_server_requests_total{status_code!="200"}[5m]) / rate(inference:model_run:mlserver:rest_server_requests_total[5m])) * 100 |
inference:model_run:mlserver:rest_server_requests_in_progress |
gauge |
Количество HTTP-запросов генерации, находящихся в данный момент в обработке. |
method — HTTP-метод (GET, POST). |
Мониторинг текущей нагрузки на генеративные модели и выявление узких мест в обработке длительных запросов. |
inference:model_run:mlserver:rest_server_requests_in_progress{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",method="POST"} 2 inference:model_run:mlserver:rest_server_requests_in_progress{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",method="GET"} 0 |
Текущая нагрузка на генеративную модель: sum(inference:model_run:mlserver:rest_server_requests_in_progress) Модели с высокой нагрузкой (больше пяти запросов для Diffusers): inference:model_run:mlserver:rest_server_requests_in_progress > 5 |
Метрики времени выполнения HTTP-запросов
Название |
Тип |
Описание |
Лейблы |
Назначение |
Пример метрики |
Пример использования |
---|---|---|---|---|---|---|
inference:model_run:mlserver:rest_server_request_duration_seconds_count |
counter |
Количество HTTP-запросов генерации, сгруппированных по времени выполнения. |
|
Анализ количества запросов генерации для расчета статистики производительности. |
inference:model_run:mlserver:rest_server_request_duration_seconds_count{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",method="POST",path="/v2/models/{model_name}/infer",status_code="200"} 485 |
Количество запросов генерации в секунду: rate(inference:model_run:mlserver:rest_server_request_duration_seconds_count{path="/v2/models/{model_name}/infer"}[5m]) |
inference:model_run:mlserver:rest_server_request_duration_seconds_sum |
counter |
Общее время выполнения всех HTTP-запросов генерации в секундах. |
|
Расчет среднего времени выполнения HTTP-запросов генерации изображений. |
inference:model_run:mlserver:rest_server_request_duration_seconds_sum{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",method="POST",path="/v2/models/{model_name}/infer",status_code="200"} 2847.5 |
Среднее время ответа HTTP API для генерации: rate(inference:model_run:mlserver:rest_server_request_duration_seconds_sum[5m]) / rate(inference:model_run:mlserver:rest_server_request_duration_seconds_count[5m]) |
inference:model_run:mlserver:rest_server_request_duration_seconds_bucket |
counter |
Гистограмма распределения времени выполнения HTTP-запросов генерации. |
Лейблы:
Интервалы: 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1.0, 2.5, 5.0, 7.5, 10.0, +Inf |
Детальный анализ производительности генеративных моделей и расчет перцентилей времени генерации. |
inference:model_run:mlserver:rest_server_request_duration_seconds_bucket{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",le="5.0",method="POST",path="/v2/models/{model_name}/infer",status_code="200"} 245 inference:model_run:mlserver:rest_server_request_duration_seconds_bucket{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",le="+Inf",method="POST",path="/v2/models/{model_name}/infer",status_code="200"} 485 |
95-й перцентиль времени генерации: histogram_quantile(0.95, rate(inference:model_run:mlserver:rest_server_request_duration_seconds_bucket[5m])) 99-й перцентиль времени генерации: histogram_quantile(0.99, rate(inference:model_run:mlserver:rest_server_request_duration_seconds_bucket[5m])) Медианное время генерации: histogram_quantile(0.5, rate(inference:model_run:mlserver:rest_server_request_duration_seconds_bucket[5m])) |
Метрики успешности инференса
Название |
Тип |
Описание |
Лейблы |
Назначение |
Пример метрики |
Пример использования |
---|---|---|---|---|---|---|
inference:model_run:mlserver:model_infer_request_success_total |
counter |
Общее количество успешно выполненных запросов генерации изображений. |
|
Мониторинг надежности генеративной модели и расчет SLA для Diffusers. |
inference:model_run:mlserver:model_infer_request_success_total{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",model="model-run-mbstc-stiff",version="None"} 465 |
Количество успешных генераций в секунду: rate(inference:model_run:mlserver:model_infer_request_success_total[5m]) Общий success rate генерации за день: increase(inference:model_run:mlserver:model_infer_request_success_total[24h]) |
inference:model_run:mlserver:model_infer_request_failure_total |
counter |
Общее количество неуспешных запросов генерации изображений. |
|
Выявление проблем в работе генеративной модели и настройка алертов. |
inference:model_run:mlserver:model_infer_request_failure_total{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",model="model-run-mbstc-stiff",version="None"} 20 |
Количество ошибок генерации в секунду: rate(inference:model_run:mlserver:model_infer_request_failure_total[5m]) Процент ошибок генерации: (rate(inference:model_run:mlserver:model_infer_request_failure_total[5m]) / (rate(inference:model_run:mlserver:model_infer_request_success_total[5m]) + rate(inference:model_run:mlserver:model_infer_request_failure_total[5m]))) * 100 |
Метрики очереди запросов
Название |
Тип |
Описание |
Лейблы |
Назначение |
Пример метрики |
Пример использования |
---|---|---|---|---|---|---|
inference:model_run:mlserver:parallel_request_queue_sum |
counter |
Общее время ожидания всех запросов генерации в очереди в секундах. |
Анализ эффективности системы очередей для длительных запросов генерации. |
inference:model_run:mlserver:parallel_request_queue_sum{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff", product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652"} 45.0 |
Среднее время ожидания генерации в очереди: rate(inference:model_run:mlserver:parallel_request_queue_sum[5m]) / rate(inference:model_run:mlserver:parallel_request_queue_count[5m]). |
|
inference:model_run:mlserver:parallel_request_queue_bucket |
counter |
Гистограмма распределения времени ожидания в очереди запросов генерации. |
Лейблы:
Интервалы: 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1.0, 2.5, 5.0, 7.5, 10.0, +Inf |
Детальный анализ производительности системы очередей для генеративных моделей и выявление bottlenecks. |
inference:model_run:mlserver:parallel_request_queue_bucket{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",le="1.0"} 350 inference:model_run:mlserver:parallel_request_queue_bucket{id="36872a52-973e-4643-8864-f11bcfabf939",instance="2476",name="model-run-mbstc-stiff",product_name="inference:model-run",product_type="ml_inference",project_id="ce9e120e-baf8-4c8f-90fb-552281af4652",le="+Inf"} 485 |
95-й перцентиль времени ожидания в очереди генерации: histogram_quantile(0.95, rate(inference:model_run:mlserver:parallel_request_queue_bucket[5m])) Запросы с долгим ожиданием генерации (больше 2 секунд): inference:model_run:mlserver:parallel_request_queue_bucket{le="+Inf"} - inference:model_run:mlserver:parallel_request_queue_bucket{le="2.0"} |
Общие лейблы
Все метрики MLServer содержат следующие идентификационные лейблы:
id — уникальный идентификатор инстанса модели;
instance — номер инстанса;
name — имя инстанса модели;
product_name — название продукта (inference:model-run);
product_type — тип продукта (ml_inference);
project_id — идентификатор проекта.
Алерты и пороговые значения
Ниже представлены рекомендуемые алерты для мониторинга Diffusers моделей.
Алерт |
Пороговые значения |
---|---|
Высокая задержка |
Средняя задержка инференса > 10 секунд (учитывая специфику генеративных моделей). |
Низкая доступность |
Процент успешных запросов < 95 %. |
Высокая нагрузка на очередь |
Размер очереди > 50 запросов (меньше чем для Transformers из-за более долгого времени обработки). |
Ошибки готовности модели |
status_code != 200 для /ready-эндпоинта. |
Примеры запросов
Ниже приведены примеры PromQL-запросов для работы с метриками Diffusers-моделей.
Среднее время генерации изображения:
rate(inference:model_run:mlserver:model_infer_request_duration_sum[5m]) / rate(inference:model_run:mlserver:model_infer_request_duration_count[5m])
RPS для запросов генерации:
rate(inference:model_run:mlserver:rest_server_requests_total{path="/v2/models/{model_name}/infer"}[5m])
95-й перцентиль времени генерации:
histogram_quantile(0.95, rate(inference:model_run:mlserver:rest_server_request_duration_seconds_bucket[5m]))
Процент ошибок генерации:
(rate(inference:model_run:mlserver:model_infer_request_failure_total[5m]) / (rate(inference:model_run:mlserver:model_infer_request_success_total[5m]) + rate(inference:model_run:mlserver:model_infer_request_failure_total[5m]))) * 100
Текущая нагрузка на генеративную модель:
sum(inference:model_run:mlserver:rest_server_requests_in_progress)
- Дашборд мониторинга
- Доступные метрики
- Алерты и пороговые значения
- Примеры запросов