Skip to content

Latest commit

 

History

History
76 lines (59 loc) · 3.99 KB

Monitoring.md

File metadata and controls

76 lines (59 loc) · 3.99 KB

Мониторинг

Описание метрик

Для мониторинга были выбраны метрики трех типов.

1. Бизнес-метрики

  • Квантили предсказаний модели:
    Анализ предсказаний позволяет выявлять отклонения в работе модели, например, в результате изменения распределения во входных данных, из-за чего может возникнуть необходимость дообучения модели. При этом для мониторинга лучше использовать квантили, чтобы игнорировать выбросы.

    PromQL-запросы:

    histogram_quantile(0.05, ml_service_predictions_bucket)
    histogram_quantile(0.5, ml_service_predictions_bucket)
    histogram_quantile(0.95, ml_service_predictions_bucket)
    

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

  • Количество запросов с неправильными параметрами:
    При отправке таких запросов пользователь получит вместо предсказания описание ошибки, но код статуса при этом все равно будет равен 200. Поэтому такие запросы желательно учитывать отдельно, когда считаем, например, среднее предсказание. В связи с этим на дашборде показываем общее количество таких запросов к текущему моменту времени.

    PromQL-запрос:

    ml_service_err_requests_total
    
  • Количество запросов в секунду к основной странице (трафик):
    Позволяет оценивать интенсивность обращений к приложению, выявлять паттерны в изменении трафика и соотвествующим образом масштабировать сервис.

    PromQL-запрос:

    rate(http_request_duration_seconds_count{handler='/predict', instance="ml_service:1702", job="scrapping-main-app", method="POST"}[1m])
    
  • Среднее время обработки одного запроса к основной странице (задержка):
    Позволяет по резким всплескам во времени обслуживания выявлять перегруженность или сбои в работе сервиса.

    PromQL-запрос:

    http_request_duration_seconds_sum{handler='/predict', instance="ml_service:1702", job="scrapping-main-app", method="POST"} / http_request_duration_seconds_count{handler='/predict', instance="ml_service:1702", job="scrapping-main-app", method="POST"}
    

3. Метрики инфраструктурного уровня
Эти метрики нужны, чтобы следить за потреблением ресурсов, оптимизировать их распределение, прогнозировать критические ситуации итд.

  • Использование CPU

    PromQL-запрос:

    process_cpu_seconds_total
    
  • Использование RAM

    PromQL-запрос:

    process_virtual_memory_bytes
    

Описание дашборда в Grafana

Дашборд состоит из 6 панелей в соответствии с выбранными метриками:

  1. Квантили предсказаний модели,
  2. Количество запросов с неправильными параметрами,
  3. Количество запросов в секунду (трафик),
  4. Среднее время обработки одного запроса (задержка),
  5. Использование CPU,
  6. Использование RAM.