Мониторинг сервиса
Задача снимать метрики из сервиса. Каким образом это делается обычно?
Мы захотели использовать прометея и столкнулись с неожиданной проблемой. У нас flask/fastapi вместе со стандартной связкой uvicorn (ELB) (можно nginx). При этом, возникает трудность в том, что каждый из работающих воркеров за ELB имеет свои метрики. Тогда оказывается, что прометеус будет запрашивать эти метрики и получать разные ответы от разных воркеров. Как решаете эту проблему?
Более формально
Балансер — uvicorn. Workers — fastAPI, каждый из которых выставляет наружу эндпоинт прометеуса (на картинке P).
Проблема. Каждый воркер выставляет свой эндпоинт. Тогда в прометее оказывается много графиков по метрикам. Как решается такая проблема в среднем?
Ответы (1 шт):
решали эту проблему сбором метрик в statsd а оттуда в прометей
https://github.com/prometheus/client_python#multiprocess-mode-gunicorn
https://flussonic.ru/doc/api/http-api-k-flussonic-media-server/
