From a6123e22ac5e8eebd4590757197c0f6270037cb4 Mon Sep 17 00:00:00 2001 From: Klaas van Schelven Date: Fri, 24 May 2024 14:47:31 +0200 Subject: [PATCH] Fail more loudly when sentry sdk experiences network troubles --- bugsink/settings/development.py | 2 ++ sentry_sdk_extensions/transport.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 sentry_sdk_extensions/transport.py diff --git a/bugsink/settings/development.py b/bugsink/settings/development.py index 6005a08..67ca4ab 100644 --- a/bugsink/settings/development.py +++ b/bugsink/settings/development.py @@ -7,6 +7,7 @@ from debug_toolbar.middleware import show_toolbar import sentry_sdk from sentry_sdk.integrations.django import DjangoIntegration +from sentry_sdk_extensions.transport import MoreLoudlyFailingTransport SECRET_KEY = 'django-insecure-$@clhhieazwnxnha-_zah&(bieq%yux7#^07&xsvhn58t)8@xw' @@ -64,6 +65,7 @@ if SENTRY_DSN is not None: auto_session_tracking=False, traces_sample_rate=0, send_default_pii=True, + transport=MoreLoudlyFailingTransport, ) SNAPPEA = { diff --git a/sentry_sdk_extensions/transport.py b/sentry_sdk_extensions/transport.py new file mode 100644 index 0000000..9479741 --- /dev/null +++ b/sentry_sdk_extensions/transport.py @@ -0,0 +1,13 @@ +import logging +from sentry_sdk.transport import HttpTransport + + +# the lazy choice: I've already got loggers set up for bugsink; I'll just use them. Better would be: just use "sentry" +logger = logging.getLogger("bugsink.sentry") + + +class MoreLoudlyFailingTransport(HttpTransport): + def on_dropped_event(self, reason): + # type: (str) -> None + # ... do you thing ... + logger.error("Sentry SDK dropped event: %s", reason)