diff options
Diffstat (limited to 'core/sentry.py')
-rw-r--r-- | core/sentry.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/core/sentry.py b/core/sentry.py new file mode 100644 index 0000000..9a7b100 --- /dev/null +++ b/core/sentry.py @@ -0,0 +1,49 @@ +from contextlib import contextmanager + +from django.conf import settings + +SENTRY_ENABLED = False +try: + if settings.SETUP.SENTRY_DSN: + import sentry_sdk + + SENTRY_ENABLED = True +except ImportError: + pass + + +def noop(*args, **kwargs): + pass + + +@contextmanager +def noop_context(*args, **kwargs): + yield + + +if SENTRY_ENABLED: + configure_scope = sentry_sdk.configure_scope + push_scope = sentry_sdk.push_scope + set_context = sentry_sdk.set_context + set_tag = sentry_sdk.set_tag + start_transaction = sentry_sdk.start_transaction +else: + configure_scope = noop_context + push_scope = noop_context + set_context = noop + set_tag = noop + start_transaction = noop_context + + +def set_takahe_app(name: str): + set_tag("takahe.app", name) + + +def scope_clear(scope): + if scope: + scope.clear() + + +def set_transaction_name(scope, name: str): + if scope: + scope.set_transaction_name(name) |