Мониторинг Model RUN Transformers
В этой статье описаны дашборды и виджеты, которые строятся по метрикам Model RUN Transformers ML Inference.
Дашборд мониторинга
Базовый дашборд мониторинга содержит ключевые виджеты для контроля производительности Transformers-моделей.
Виджет |
Описание |
Легенда |
---|---|---|
E2E Request Latency (1m) |
Время ответа на запросы инференса от начала до конца за последнюю минуту. Показывает полную задержку обработки запроса, включая время сетевой передачи, очереди и непосредственно инференса модели. |
Среднее время обработки запросов инференса за минуту в секундах. |
Inference Throughput (1m) |
Пропускная способность инференса за последнюю минуту. Отображает количество успешно обработанных запросов инференса в единицу времени, характеризуя производительность модели. |
Количество запросов инференса в секунду за последнюю минуту. |
Доступные метрики
MLServer предоставляет полный набор метрик для мониторинга всех аспектов работы Transformers-моделей. Все метрики экспортируются в формате Prometheus.
Метрики времени выполнения инференса
Название |
Тип |
Описание |
Лейблы |
Назначение |
Пример метрики |
Пример использования |
---|---|---|---|---|---|---|
inference:model_run:mlserver:model_infer_request_duration_count |
counter |
Общее количество запросов инференса к модели. |
|
Подсчет общего количества обработанных запросов инференса для анализа нагрузки. |
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"} 1285 |
Количество запросов инференса в секунду: 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 |
Общее время, потраченное на выполнение всех запросов инференса (в секундах). |
|
Расчет среднего времени выполнения инференса и анализ производительности. |
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"} 428.5 |
Среднее время инференса: rate(inference:model_run:mlserver:model_infer_request_duration_sum[5m]) / rate(inference:model_run:mlserver:model_infer_request_duration_count[5m]) Общее время CPU, потраченное на инференс за час: 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"} 1285 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"} 245 |
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-запросов, находящихся в обработке. |
|
Мониторинг текущей нагрузки и выявление узких мест в обработке запросов. |
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"} 3 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) Инстансы с высокой нагрузкой (более 10 запросов) inference:model_run:mlserver:rest_server_requests_in_progress > 10 |
Метрики времени выполнения 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"} 1285 |
Количество запросов инференса в секунду: 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"} 428.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="1.0",method="POST",path="/v2/models/{model_name}/infer",status_code="200"} 1100 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"} 1285 |
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. |
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"} 1245 |
Количество успешных запросов в секунду: 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"} 40 |
Количество ошибок в секунду: 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"} 27.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 |
Гистограмма распределения времени ожидания в очереди запросов. |
Лейблы: - le — верхняя граница временного интервала (в секундах). Интервалы: 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="0.1"} 850 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"} 1285 |
95-й перцентиль времени ожидания в очереди: histogram_quantile(0.95, rate(inference:model_run:mlserver:parallel_request_queue_bucket[5m])) Запросы с долгим ожиданием (более 1 секунды): inference:model_run:mlserver:parallel_request_queue_bucket{le="+Inf"} - inference:model_run:mlserver:parallel_request_queue_bucket{le="1.0"} |
Общие лейблы
Все метрики MLServer содержат следующие идентификационные лейблы:
id — уникальный идентификатор инстанса модели;
instance — номер инстанса;
name — имя инстанса модели;
product_name — название продукта (inference:model-run);
product_type — тип продукта (ml_inference);
project_id — идентификатор проекта.
Алерты и пороговые значения
Ниже представлены рекомендуемые алерты для мониторинга Transformers-моделей.
Алерт |
Пороговые значения |
---|---|
Высокая задержка |
Средняя задержка инференса > 5 секунд. |
Низкая доступность |
Процент успешных запросов < 95 %. |
Высокая нагрузка на очередь |
Размер очереди > 100 запросов. |
Ошибки готовности модели |
status_code != 200 для /ready-эндпоинта. |
Примеры запросов
Ниже приведены примеры PromQL-запросов для работы с метриками Transformers-моделей.
Среднее время инференса:
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)
- Дашборд мониторинга
- Доступные метрики
- Алерты и пороговые значения
- Примеры запросов