@@ -229,15 +229,28 @@ def _capture_envelope(envelope):
229229
230230 self .metrics_aggregator = None # type: Optional[MetricsAggregator]
231231 experiments = self .options .get ("_experiments" , {})
232- if experiments .get ("enable_metrics" , True ):
233- from sentry_sdk .metrics import MetricsAggregator
234-
235- self .metrics_aggregator = MetricsAggregator (
236- capture_func = _capture_envelope ,
237- enable_code_locations = bool (
238- experiments .get ("metric_code_locations" , True )
239- ),
240- )
232+ if experiments .get ("enable_metrics" , True ) or experiments .get (
233+ "force_enable_metrics" , False
234+ ):
235+ try :
236+ import uwsgi # type: ignore
237+ except ImportError :
238+ uwsgi = None
239+
240+ if uwsgi is not None and not experiments .get (
241+ "force_enable_metrics" , False
242+ ):
243+ logger .warning ("Metrics currently not supported with uWSGI." )
244+
245+ else :
246+ from sentry_sdk .metrics import MetricsAggregator
247+
248+ self .metrics_aggregator = MetricsAggregator (
249+ capture_func = _capture_envelope ,
250+ enable_code_locations = bool (
251+ experiments .get ("metric_code_locations" , True )
252+ ),
253+ )
241254
242255 max_request_body_size = ("always" , "never" , "small" , "medium" )
243256 if self .options ["max_request_body_size" ] not in max_request_body_size :
0 commit comments