Python Основанные приложения являются значительной частью экосистемы в нашей компании. В эпоху микросервисов действительно нет разницы, которую технология используется под капотом. Но каждая услуга должна предоставить свою собственную API и способ контролировать свое государство.
В нашей настройке мы используем Prometheus Совокупные метрики от всех наших услуг. И это работает нормально. Особенно с нашей JVM Программы. Но это было не так для всех питонов до сегодняшнего дня.
Как историческая традиция наши приложения Pythons в основном сделаны с Колбу Отказ И это хорошая рамка. В некоторых случаях он также обернут Боевик . И вот учебник, как сделать его работать с Prometheus:
- Добавьте зависимость в ваш проект setup.py до.1.1
- Внутри вашего приложения определяют некоторые метрики, которые вы хотите собирать, например: (__ имя __. Заменить (‘.’, ‘_’) + ‘_request_latency_seconds’, ‘Флэк-запрос Задержка’) .
- Аннотируйте метод, который вы хотите измерить с помощью @ flask_request_latency.time ()
- Добавить конечную точку, чтобы открыть статистику:
Вот и все! Если ваше приложение просто простой колбу без гуляника. Чтобы он работал в многопроцессорном сценарии, вам нужно сделать несколько дополнительных шагов:
- Создать конфиг для Gunicorn:
Этот конфиг может быть предоставлен для боевик CLI с -C флаг.
Добавьте переменную среды PROMETHEUS_MULTIPROC_DIR, которые должны указывать на каталог, в котором PROMETHEUS может временно хранить метрики. Если вы используете Кубернаны Обновите дескриптор развертывания для монтирования Объем с пустоддир тип.
И последнее, что нужно сделать – обновить код для вашей конечной точки вашей/статистики:
Я надеюсь, что это короткое руководство может быть полезным и поможет вам сделать ваши приложения измеримыми и системой более надежными.
Оригинал: “https://dev.to/gimlet2/prometheus-python-flask-4ik0”