summaryrefslogtreecommitdiffstats
path: root/core/sentry.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/sentry.py')
-rw-r--r--core/sentry.py49
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)