From a539999c04521867be88fe63e98712ec83718272 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 5 Feb 2019 17:19:18 +0100 Subject: [PATCH] Sentry: Do not report retried celery tasks --- src/pretix/sentry.py | 13 +++++++++++++ src/pretix/settings.py | 6 ++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/pretix/sentry.py b/src/pretix/sentry.py index daeb0362d..80a372114 100644 --- a/src/pretix/sentry.py +++ b/src/pretix/sentry.py @@ -2,6 +2,7 @@ import re import weakref from collections import OrderedDict +from celery.exceptions import Retry from sentry_sdk import Hub from sentry_sdk.integrations.django import DjangoIntegration, _set_user_info from sentry_sdk.utils import capture_internal_exceptions @@ -94,3 +95,15 @@ class PretixSentryIntegration(DjangoIntegration): return old_get_response(self, request) BaseHandler.get_response = sentry_patched_get_response + + +def ignore_retry(event, hint): + with capture_internal_exceptions(): + if isinstance(hint["exc_info"][1], Retry): + return None + + +def setup_custom_filters(): + hub = Hub.current + with hub.configure_scope() as scope: + scope.add_event_processor(ignore_retry) diff --git a/src/pretix/settings.py b/src/pretix/settings.py index 2bdda821f..80d472b90 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -569,7 +569,7 @@ if config.has_option('sentry', 'dsn'): import sentry_sdk from sentry_sdk.integrations.celery import CeleryIntegration from sentry_sdk.integrations.logging import LoggingIntegration, ignore_logger - from .sentry import PretixSentryIntegration + from .sentry import PretixSentryIntegration, setup_custom_filters sentry_sdk.init( dsn=config.get('sentry', 'dsn'), @@ -587,9 +587,7 @@ if config.has_option('sentry', 'dsn'): ) ignore_logger('pretix.base.tasks') - ignore_logger('pretix.plugins.stripe') - ignore_logger('pretix.plugins.paypal') - ignore_logger('pretix.plugins.banktransfer') + setup_custom_filters() CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json'