From 3f8045f4128d14558636b1c8a9445c29e8e1583d Mon Sep 17 00:00:00 2001 From: Michael Manfre Date: Sun, 4 Dec 2022 20:08:23 -0500 Subject: [WIP] Sentry improvements (#108) Stator clears scope during the main loop to behave more like transactions. Transaction names are set. Sentry tags: * 'takahe.version' * 'takahe.app' values 'web' or 'stator' Added settings: * TAKAHE_SENTRY_SAMPLE_RATE * TAKAHE_SENTRY_TRACES_SAMPLE_RATE --- core/middleware.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'core/middleware.py') diff --git a/core/middleware.py b/core/middleware.py index fca5dd8..08c28fa 100644 --- a/core/middleware.py +++ b/core/middleware.py @@ -1,3 +1,6 @@ +from django.core.exceptions import MiddlewareNotUsed + +from core import sentry from core.models import Config @@ -13,3 +16,19 @@ class ConfigLoadingMiddleware: Config.system = Config.load_system() response = self.get_response(request) return response + + +class SentryTaggingMiddleware: + """ + Sets Sentry tags at the start of the request if Sentry is configured. + """ + + def __init__(self, get_response): + if not sentry.SENTRY_ENABLED: + raise MiddlewareNotUsed() + self.get_response = get_response + + def __call__(self, request): + sentry.set_takahe_app("web") + response = self.get_response(request) + return response -- cgit v1.2.3