普罗米修斯+;Django+;gunicorn--预加载和多个进程只发布一个端口

普罗米修斯+;Django+;gunicorn--预加载和多个进程只发布一个端口,django,prometheus,Django,Prometheus,我正在运行django+prometheus+gunicorn,在每个进程中使用多个进程导出/metrics,如中所述。当我使用--reload和两个worker运行gunicorn时,我可以看到端口8001和8002是如何为prometheus metrics服务的,每个进程一个。但是,当我使用--preload运行gunicorn时,只有端口8001打开 使用--preload时,我需要做什么才能为每个进程获得一个prometheus端点 django普罗米修斯设置: PROMETHEUS_

我正在运行django+prometheus+gunicorn,在每个进程中使用多个进程导出
/metrics
,如中所述。当我使用
--reload
和两个worker运行gunicorn时,我可以看到端口8001和8002是如何为prometheus metrics服务的,每个进程一个。但是,当我使用
--preload
运行gunicorn时,只有端口8001打开

使用
--preload
时,我需要做什么才能为每个进程获得一个prometheus端点

django普罗米修斯设置:

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
版本:

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

您必须将Prometheus客户端配置为在多进程中运行mode@trallnagdjango prometheus客户端以本机方式处理多进程。事实上,它与
gunicorn--reload
一起工作。只有当它失败时才使用
gunicorn--preload