From cf44f17bf884fa5f22a0b560413bfc56f4291cbb Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Thu, 30 Oct 2025 13:37:58 +0100 Subject: [PATCH 1/3] chore: Remove enable_metrics option --- sentry_sdk/client.py | 11 +++-------- sentry_sdk/consts.py | 1 - sentry_sdk/utils.py | 8 -------- tests/test_metrics.py | 15 ++++++--------- 4 files changed, 9 insertions(+), 26 deletions(-) diff --git a/sentry_sdk/client.py b/sentry_sdk/client.py index 91096c6b4f..9393b949d3 100644 --- a/sentry_sdk/client.py +++ b/sentry_sdk/client.py @@ -10,6 +10,7 @@ import sentry_sdk from sentry_sdk._compat import PY37, check_uwsgi_thread_support +from sentry_sdk._metrics_batcher import MetricsBatcher from sentry_sdk.utils import ( AnnotatedValue, ContextVar, @@ -26,7 +27,6 @@ get_before_send_log, get_before_send_metric, has_logs_enabled, - has_metrics_enabled, ) from sentry_sdk.serializer import serialize from sentry_sdk.tracing import trace @@ -374,12 +374,7 @@ def _capture_envelope(envelope): self.log_batcher = LogBatcher(capture_func=_capture_envelope) - self.metrics_batcher = None - - if has_metrics_enabled(self.options): - from sentry_sdk._metrics_batcher import MetricsBatcher - - self.metrics_batcher = MetricsBatcher(capture_func=_capture_envelope) + self.metrics_batcher = MetricsBatcher(capture_func=_capture_envelope) max_request_body_size = ("always", "never", "small", "medium") if self.options["max_request_body_size"] not in max_request_body_size: @@ -978,7 +973,7 @@ def _capture_log(self, log): def _capture_metric(self, metric): # type: (Optional[Metric]) -> None - if not has_metrics_enabled(self.options) or metric is None: + if metric is None: return isolation_scope = sentry_sdk.get_isolation_scope() diff --git a/sentry_sdk/consts.py b/sentry_sdk/consts.py index 33900acd50..f6c6ee117f 100644 --- a/sentry_sdk/consts.py +++ b/sentry_sdk/consts.py @@ -78,7 +78,6 @@ class CompressionAlgo(Enum): "transport_http2": Optional[bool], "enable_logs": Optional[bool], "before_send_log": Optional[Callable[[Log, Hint], Optional[Log]]], - "enable_metrics": Optional[bool], "before_send_metric": Optional[Callable[[Metric, Hint], Optional[Metric]]], }, total=False, diff --git a/sentry_sdk/utils.py b/sentry_sdk/utils.py index 3496178228..93c35cee8a 100644 --- a/sentry_sdk/utils.py +++ b/sentry_sdk/utils.py @@ -2047,14 +2047,6 @@ def get_before_send_log(options): ) -def has_metrics_enabled(options): - # type: (Optional[dict[str, Any]]) -> bool - if options is None: - return False - - return bool(options["_experiments"].get("enable_metrics", False)) - - def get_before_send_metric(options): # type: (Optional[dict[str, Any]]) -> Optional[Callable[[Metric, Hint], Optional[Metric]]] if options is None: diff --git a/tests/test_metrics.py b/tests/test_metrics.py index d5ca8ec572..0f26534876 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -46,7 +46,7 @@ def test_metrics_disabled_by_default(sentry_init, capture_envelopes): def test_metrics_basics(sentry_init, capture_envelopes): - sentry_init(_experiments={"enable_metrics": True}) + sentry_init() envelopes = capture_envelopes() sentry_sdk.metrics.count("test.counter", 1) @@ -77,7 +77,7 @@ def test_metrics_basics(sentry_init, capture_envelopes): def test_metrics_experimental_option(sentry_init, capture_envelopes): - sentry_init(_experiments={"enable_metrics": True}) + sentry_init() envelopes = capture_envelopes() sentry_sdk.metrics.count("test.counter", 5) @@ -93,9 +93,7 @@ def test_metrics_experimental_option(sentry_init, capture_envelopes): def test_metrics_with_attributes(sentry_init, capture_envelopes): - sentry_init( - _experiments={"enable_metrics": True}, release="1.0.0", environment="test" - ) + sentry_init(release="1.0.0", environment="test") envelopes = capture_envelopes() sentry_sdk.metrics.count( @@ -114,7 +112,7 @@ def test_metrics_with_attributes(sentry_init, capture_envelopes): def test_metrics_with_user(sentry_init, capture_envelopes): - sentry_init(_experiments={"enable_metrics": True}) + sentry_init() envelopes = capture_envelopes() sentry_sdk.set_user( @@ -133,7 +131,7 @@ def test_metrics_with_user(sentry_init, capture_envelopes): def test_metrics_with_span(sentry_init, capture_envelopes): - sentry_init(_experiments={"enable_metrics": True}, traces_sample_rate=1.0) + sentry_init(traces_sample_rate=1.0) envelopes = capture_envelopes() with sentry_sdk.start_transaction(op="test", name="test-span"): @@ -150,7 +148,7 @@ def test_metrics_with_span(sentry_init, capture_envelopes): def test_metrics_tracing_without_performance(sentry_init, capture_envelopes): - sentry_init(_experiments={"enable_metrics": True}) + sentry_init() envelopes = capture_envelopes() sentry_sdk.metrics.count("test.span.counter", 1) @@ -190,7 +188,6 @@ def _before_metric(record, hint): sentry_init( _experiments={ - "enable_metrics": True, "before_send_metric": _before_metric, }, ) From fd7b155351ac9587c1098ade3ab26a371790639b Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Thu, 30 Oct 2025 13:52:20 +0100 Subject: [PATCH 2/3] remove disabled by default test --- tests/test_metrics.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/tests/test_metrics.py b/tests/test_metrics.py index 0f26534876..b0e92c9320 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -33,18 +33,6 @@ def envelopes_to_metrics(envelopes): return res -def test_metrics_disabled_by_default(sentry_init, capture_envelopes): - sentry_init() - - envelopes = capture_envelopes() - - sentry_sdk.metrics.count("test.counter", 1) - sentry_sdk.metrics.gauge("test.gauge", 42) - sentry_sdk.metrics.distribution("test.distribution", 200) - - assert len(envelopes) == 0 - - def test_metrics_basics(sentry_init, capture_envelopes): sentry_init() envelopes = capture_envelopes() From 953ad971cdcaf4454d42405cf628c2fd13614b76 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Fri, 31 Oct 2025 12:37:12 +0100 Subject: [PATCH 3/3] preserve type --- sentry_sdk/consts.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sentry_sdk/consts.py b/sentry_sdk/consts.py index f6c6ee117f..33900acd50 100644 --- a/sentry_sdk/consts.py +++ b/sentry_sdk/consts.py @@ -78,6 +78,7 @@ class CompressionAlgo(Enum): "transport_http2": Optional[bool], "enable_logs": Optional[bool], "before_send_log": Optional[Callable[[Log, Hint], Optional[Log]]], + "enable_metrics": Optional[bool], "before_send_metric": Optional[Callable[[Metric, Hint], Optional[Metric]]], }, total=False,