From 837c4096e2d0791c0ff521fad34a8efb523af124 Mon Sep 17 00:00:00 2001 From: Neel Shah Date: Thu, 28 Jul 2022 12:02:36 +0200 Subject: [PATCH] Factor out profiling hceck --- sentry_sdk/profiler.py | 22 ++++++++++++---------- sentry_sdk/tracing.py | 5 +++-- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/sentry_sdk/profiler.py b/sentry_sdk/profiler.py index 22f9b100cf..f499a5eac2 100644 --- a/sentry_sdk/profiler.py +++ b/sentry_sdk/profiler.py @@ -17,8 +17,8 @@ import time from contextlib import contextmanager +import sentry_sdk from sentry_sdk._compat import PY2 -from sentry_sdk.hub import Hub from sentry_sdk.utils import logger if PY2: @@ -193,17 +193,19 @@ def transaction_name(self): return self._transaction.name -@contextmanager -def profiling(transaction, hub=None): - # type: (sentry_sdk.tracing.Transaction, Optional[Hub]) -> Generator[None, None, None] +def has_profiling_enabled(hub=None): + # type: (Optional[sentry_sdk.Hub]) -> bool if hub is None: - hub = Hub.current + hub = sentry_sdk.Hub.current + + options = hub.client and hub.client.options + return bool(options and options["_experiments"].get("enable_profiling")) - if ( - hub.client - and hub.client.options - and hub.client.options["_experiments"].get("enable_profiling", False) - ): + +@contextmanager +def profiling(transaction, hub=None): + # type: (sentry_sdk.tracing.Transaction, Optional[sentry_sdk.Hub]) -> Generator[None, None, None] + if has_profiling_enabled(hub): with Sampler(transaction): yield else: diff --git a/sentry_sdk/tracing.py b/sentry_sdk/tracing.py index c442b4880a..fa95b6ec6f 100644 --- a/sentry_sdk/tracing.py +++ b/sentry_sdk/tracing.py @@ -7,6 +7,7 @@ import sentry_sdk +from sentry_sdk.profiler import has_profiling_enabled from sentry_sdk.utils import logger from sentry_sdk._types import MYPY @@ -663,8 +664,8 @@ def finish(self, hub=None): } if ( - hub.client is not None - and hub.client.options["_experiments"].get("enable_profiling", False) + has_profiling_enabled(hub) + and hub.client is not None and self._profile is not None ): event["profile"] = {