@@ -249,15 +249,28 @@ def _capture_envelope(envelope):
249249
250250 self .metrics_aggregator = None # type: Optional[MetricsAggregator]
251251 experiments = self .options .get ("_experiments" , {})
252- if experiments .get ("enable_metrics" , True ):
253- from sentry_sdk .metrics import MetricsAggregator
254-
255- self .metrics_aggregator = MetricsAggregator (
256- capture_func = _capture_envelope ,
257- enable_code_locations = bool (
258- experiments .get ("metric_code_locations" , True )
259- ),
260- )
252+ if experiments .get ("enable_metrics" , True ) or experiments .get (
253+ "force_enable_metrics" , False
254+ ):
255+ try :
256+ import uwsgi # type: ignore
257+ except ImportError :
258+ uwsgi = None
259+
260+ if uwsgi is not None and not experiments .get (
261+ "force_enable_metrics" , False
262+ ):
263+ logger .warning ("Metrics currently not supported with uWSGI." )
264+
265+ else :
266+ from sentry_sdk .metrics import MetricsAggregator
267+
268+ self .metrics_aggregator = MetricsAggregator (
269+ capture_func = _capture_envelope ,
270+ enable_code_locations = bool (
271+ experiments .get ("metric_code_locations" , True )
272+ ),
273+ )
261274
262275 max_request_body_size = ("always" , "never" , "small" , "medium" )
263276 if self .options ["max_request_body_size" ] not in max_request_body_size :
0 commit comments