From aba5bd6c4307c83a425753533859553f26a577a0 Mon Sep 17 00:00:00 2001 From: Ivana Kellyerova Date: Fri, 9 Feb 2024 09:35:13 +0100 Subject: [PATCH 1/4] Turn off metrics for uWSGI --- sentry_sdk/client.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/sentry_sdk/client.py b/sentry_sdk/client.py index 2927f40495..04b32432d2 100644 --- a/sentry_sdk/client.py +++ b/sentry_sdk/client.py @@ -250,14 +250,23 @@ def _capture_envelope(envelope): self.metrics_aggregator = None # type: Optional[MetricsAggregator] experiments = self.options.get("_experiments", {}) if experiments.get("enable_metrics", True): - from sentry_sdk.metrics import MetricsAggregator + try: + import uwsgi + except ImportError: + uwsgi = None - self.metrics_aggregator = MetricsAggregator( - capture_func=_capture_envelope, - enable_code_locations=bool( - experiments.get("metric_code_locations", True) - ), - ) + if uwsgi is not None: + logger.warning("Metrics currently not supported with uWSGI.") + + else: + from sentry_sdk.metrics import MetricsAggregator + + self.metrics_aggregator = MetricsAggregator( + capture_func=_capture_envelope, + enable_code_locations=bool( + experiments.get("metric_code_locations", True) + ), + ) max_request_body_size = ("always", "never", "small", "medium") if self.options["max_request_body_size"] not in max_request_body_size: From db21c494de09e3eb148f968c4c8e5f2451bf5b05 Mon Sep 17 00:00:00 2001 From: Ivana Kellyerova Date: Fri, 9 Feb 2024 09:47:15 +0100 Subject: [PATCH 2/4] mypy --- sentry_sdk/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/client.py b/sentry_sdk/client.py index 04b32432d2..2d7b08b258 100644 --- a/sentry_sdk/client.py +++ b/sentry_sdk/client.py @@ -251,7 +251,7 @@ def _capture_envelope(envelope): experiments = self.options.get("_experiments", {}) if experiments.get("enable_metrics", True): try: - import uwsgi + import uwsgi # type: ignore except ImportError: uwsgi = None From 326d6eb740ffcee78cdf921a080024d244dbeb25 Mon Sep 17 00:00:00 2001 From: Ivana Kellyerova Date: Fri, 9 Feb 2024 10:21:09 +0100 Subject: [PATCH 3/4] add an override --- sentry_sdk/client.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sentry_sdk/client.py b/sentry_sdk/client.py index 2d7b08b258..7e2659810d 100644 --- a/sentry_sdk/client.py +++ b/sentry_sdk/client.py @@ -249,13 +249,17 @@ def _capture_envelope(envelope): self.metrics_aggregator = None # type: Optional[MetricsAggregator] experiments = self.options.get("_experiments", {}) - if experiments.get("enable_metrics", True): + if experiments.get("enable_metrics", True) or experiments.get( + "force_enable_metrics", False + ): try: import uwsgi # type: ignore except ImportError: uwsgi = None - if uwsgi is not None: + if uwsgi is not None and not experiments.get( + "force_enable_metrics", False + ): logger.warning("Metrics currently not supported with uWSGI.") else: From d0e57202578a647dd7d8ce6cae8398d4dd150b9a Mon Sep 17 00:00:00 2001 From: Ivana Kellyerova Date: Fri, 9 Feb 2024 10:30:30 +0100 Subject: [PATCH 4/4] also add to experiments typedict --- sentry_sdk/consts.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sentry_sdk/consts.py b/sentry_sdk/consts.py index 5bf56d4500..26c364eb7a 100644 --- a/sentry_sdk/consts.py +++ b/sentry_sdk/consts.py @@ -46,6 +46,7 @@ "transport_zlib_compression_level": Optional[int], "transport_num_pools": Optional[int], "enable_metrics": Optional[bool], + "force_enable_metrics": Optional[bool], "metrics_summary_sample_rate": Optional[float], "should_summarize_metric": Optional[Callable[[str, MetricTags], bool]], "before_emit_metric": Optional[Callable[[str, MetricTags], bool]],