@@ -249,15 +249,28 @@ def _capture_envelope(envelope):
249
249
250
250
self .metrics_aggregator = None # type: Optional[MetricsAggregator]
251
251
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
+ )
261
274
262
275
max_request_body_size = ("always" , "never" , "small" , "medium" )
263
276
if self .options ["max_request_body_size" ] not in max_request_body_size :
0 commit comments