【问题标题】:Adding django_prometheus middlewares cause 500 (server error)添加 django_prometheus 中间件导致 500(服务器错误)
【发布时间】:2023-04-02 15:50:01
【问题描述】:

我想用 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 docker-compose prometheus django-middleware


    【解决方案1】:

    问题不是因为 django-prometheus 中间件。这实际上是因为 sentry-sdk 版本。这是相关的issue。这个问题在 sentry-sdk 0.16 版本中已经修复,所以我更新了 sentry-sdk 版本并解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 2015-11-23
      • 2013-08-11
      • 2012-03-29
      • 2014-04-14
      • 1970-01-01
      相关资源
      最近更新 更多