Prometheus Django gunicorn с —preload и несколькими процессами, публикующими только один порт

#django #prometheus

#django #prometheus

Вопрос:

Я запускаю django prometheus gunicorn, экспортирую /metrics с использованием нескольких процессов для каждого процесса, как описано в документации django-prometheus. Когда я запускаю gunicorn с --reload и двумя рабочими, я вижу, как открываются порты 8001 и 8002, обслуживающие показатели prometheus, по одному на процесс. Но когда я запускаю gunicorn с --preload , открывается только порт 8001.

Что мне нужно сделать, чтобы получить одну конечную точку prometheus для каждого процесса при использовании --preload ?

настройки django-prometheus:

 PROMETHEUS_METRICS_EXPORT_PORT_RANGE = range(8001, 8020)
PROMETHEUS_METRICS_EXPORT_ADDRESS = ''
PROMETHEUS_EXPORT_MIGRATIONS = False
  

Версии:

 django==3.1.0
prometheus_client==0.8.0
django-prometheus==2.1.0
gunicorn==20.0.4
  

Комментарии:

1. Вам нужно будет настроить клиент Prometheus для запуска в многопроцессорном режиме

2. @trallnag клиент django-prometheus изначально обрабатывает многопроцессорность. На самом деле, это работает с gunicorn --reload . Это происходит только с gunicorn --preload , когда происходит сбой.