Почему не работает 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
, но он возвращает некорректные метрики (все нули).
В чем может быть проблема?