python - Django Sentry 默认标签

标签 python django sentry raven

我正在使用 python-raven 自动捕获我的 django 项目中的所有 500 个,并且效果很好。我还转发了一些我处理的异常,并为它们附加了一个特殊的标签,以便能够将它们过滤掉。问题是我无法过滤缺少特定标签的邮件,因此我想为所有邮件设置默认标签,但无法使其正常工作。

我尝试了以下方法,但它被忽略了。

RAVEN_CONFIG = {
    'dsn': 'udp://x:y@z:q/w',
    'tags': {'testtag': 'value'},
}

有谁知道如何向 Sentry 发送默认标签?

最佳答案

以下在设置模块中对我有用。 它将环境变量 DJANGO_ENVDIR 添加到每条发送的消息中。

from raven.contrib.django.client import DjangoClient as RavenDjangoClient
class SentryDjangoClient(RavenDjangoClient):
    def build_msg(self, *args, **kwargs):
        data = super(RavenDjangoClient, self).build_msg(*args, **kwargs)
        data['tags']['ENVDIR'] = os.environ.get('DJANGO_ENVDIR', 'unset')
        return data

if get_env_var('SENTRY_DSN', False):
    RAVEN_CONFIG = {
        'dsn': get_env_var('SENTRY_DSN'),
        # NOTE: timeout set via DSN
    }
    SENTRY_CLIENT = 'project.settings.base.SentryDjangoClient'

您需要根据放置 SentryDjangoClient 类的位置调整 SENTRY_CLIENT 设置,该类扩展了 build_msg 方法。

关于python - Django Sentry 默认标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19585865/

相关文章:

php - Laravel 和 Sentry : How to set a custom tag in Sentry?

python - 如何平滑多边形点之间的线?

python - 是否编译了 Python 模块?

django - Django:注释缺少的日期

django - Celery 任务未捕获的异常未发送到 Sentry

php - `sentry/sdk 2.x`-如何注册错误/异常处理

python - C++ vs python numpy复杂数组的性能

python - 在Python中使用seaborn在分布图上显示峰度、偏度等指标

python - django 导入导出 : import not working

WSGI 下需要的项目 * 和 * 应用程序的 Django sys.path.append