Рубрики
Без рубрики

Prometheus, Python, колба

Приложения на основе Python находятся значительными частью экосистемы в нашей компании. В эпоху микросервисов … Теги с Python, Kubernetes, Gunicorn, колбой.

Python Основанные приложения являются значительной частью экосистемы в нашей компании. В эпоху микросервисов действительно нет разницы, которую технология используется под капотом. Но каждая услуга должна предоставить свою собственную API и способ контролировать свое государство.

В нашей настройке мы используем Prometheus Совокупные метрики от всех наших услуг. И это работает нормально. Особенно с нашей JVM Программы. Но это было не так для всех питонов до сегодняшнего дня.

Как историческая традиция наши приложения Pythons в основном сделаны с Колбу Отказ И это хорошая рамка. В некоторых случаях он также обернут Боевик . И вот учебник, как сделать его работать с Prometheus:

  1. Добавьте зависимость в ваш проект setup.py до.1.1
  2. Внутри вашего приложения определяют некоторые метрики, которые вы хотите собирать, например: (__ имя __. Заменить (‘.’, ‘_’) + ‘_request_latency_seconds’, ‘Флэк-запрос Задержка’)  .
  3. Аннотируйте метод, который вы хотите измерить с помощью @ flask_request_latency.time ()
  4. Добавить конечную точку, чтобы открыть статистику:

Вот и все! Если ваше приложение просто простой колбу без гуляника. Чтобы он работал в многопроцессорном сценарии, вам нужно сделать несколько дополнительных шагов:

  1. Создать конфиг для Gunicorn:
  1. Этот конфиг может быть предоставлен для боевик CLI с -C флаг.

  2. Добавьте переменную среды PROMETHEUS_MULTIPROC_DIR, которые должны указывать на каталог, в котором PROMETHEUS может временно хранить метрики. Если вы используете Кубернаны Обновите дескриптор развертывания для монтирования Объем с пустоддир тип.

  3. И последнее, что нужно сделать – обновить код для вашей конечной точки вашей/статистики:

Я надеюсь, что это короткое руководство может быть полезным и поможет вам сделать ваши приложения измеримыми и системой более надежными.

Оригинал: “https://dev.to/gimlet2/prometheus-python-flask-4ik0”