Почему не работает HTTP сервер prometheus?

Имеется приложение Django, в котором необходимо собирать метрики с помощью prometheus.

Используется библиотека django_prometheus:

INSTALLED_APPS = [
   ...
   'django_prometheus',
   ...
]
 
MIDDLEWARE = [
    'django_prometheus.middleware.PrometheusBeforeMiddleware',
    ...
    'django_prometheus.middleware.PrometheusAfterMiddleware',
]

Если я добавлю в urlpatterns ручку "/metrics", то все работает нормально:

urlpatterns += [
    path('', include('django_prometheus.urls')),
]

На localhost:8000/metrics отображаются корректные метрики.

Но мне необходимо запустить сервер на отдельном порту, который будет возвращать метрики.

Сервер запускается с помощью функции prometheus_client.start_http_server(port). Также можно использовать функцию из пакета django_prometheus. Я добавил следующий код в wsgi.py:

from django.conf import settings
from django_prometheus.exports import SetupPrometheusEndpointOnPort
 
SetupPrometheusEndpointOnPort(9090)  # prometheus_client.start_http_server(9090)

Это запускает локальный сервер localhost:9090, но он возвращает некорректные метрики (все нули).

В чем может быть проблема?

Вернуться на верх