添加 django_prometheus 个中间件导致 500(服务器错误)
Adding django_prometheus middlewares cause 500 (server error)
我想用 prometheus 监控我的 django 应用程序,我添加了 django-prometheus(2.1.0) 然后我的所有请求,除了 /metrics
在 DEBUG=FALSE
时导致 500。我不明白为什么它只适用于 DEBUG=TRUE
.
# 'django_prometheus.middleware.PrometheusBeforeMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# 'django_prometheus.middleware.PrometheusAfterMiddleware',
我的中间件有问题吗?
-----更新:
我在 DEBUG=FALSE
时所做的唯一一件事是:
if not DEBUG:
sentry_sdk.init(
"<sentry_url>",
integrations=[DjangoIntegration()]
)
我的模型也使用了 django_prometheus.models.ExportModelOperationsMixin
。
相关要求版本:
sentry-sdk==0.14.3
django-prometheus==2.1.0
问题不是因为django-prometheus中间件。其实是sentry-sdk版本的问题。这是相关的issue。这个问题在0.16版本的sentry-sdk中已经修复,所以我更新了sentry-sdk版本并解决了。
我想用 prometheus 监控我的 django 应用程序,我添加了 django-prometheus(2.1.0) 然后我的所有请求,除了 /metrics
在 DEBUG=FALSE
时导致 500。我不明白为什么它只适用于 DEBUG=TRUE
.
# 'django_prometheus.middleware.PrometheusBeforeMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# 'django_prometheus.middleware.PrometheusAfterMiddleware',
我的中间件有问题吗?
-----更新:
我在 DEBUG=FALSE
时所做的唯一一件事是:
if not DEBUG:
sentry_sdk.init(
"<sentry_url>",
integrations=[DjangoIntegration()]
)
我的模型也使用了 django_prometheus.models.ExportModelOperationsMixin
。
相关要求版本:
sentry-sdk==0.14.3
django-prometheus==2.1.0
问题不是因为django-prometheus中间件。其实是sentry-sdk版本的问题。这是相关的issue。这个问题在0.16版本的sentry-sdk中已经修复,所以我更新了sentry-sdk版本并解决了。