summaryrefslogtreecommitdiffstats
path: root/core/sentry.py
blob: 9a7b100567d24c35c00a8c11cdaaf0b551566709 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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)