@@ -388,15 +388,25 @@ def _instrument(self, **kwargs):
388388
389389 is_sql_commentor_enabled = kwargs .pop ("is_sql_commentor_enabled" , None )
390390
391- middleware_position = kwargs .pop ("middleware_position" , 0 )
391+ otel_position = environ .get ("OTEL_PYTHON_DJANGO_MIDDLEWARE_POSITION" )
392+ try :
393+ middleware_position = int (otel_position )
394+ except (ValueError , TypeError ):
395+ _logger .debug (
396+ "The middleware_position you provided (%s) is not an integer. Defaulting to 0." ,
397+ otel_position ,
398+ )
399+ middleware_position = kwargs .pop ("middleware_position" , 0 )
400+
392401 if len (settings_middleware ) < middleware_position :
393402 _logger .debug (
394- "The middleware_position you provided (%d ) is less than the current number of middlewares (%d ). \
395- Since the number of middlewares is less than the total, the Otel middleware will be appended at the end of the middleware chain ." ,
403+ "The middleware_position you provided (%s ) is greater than the number of middlewares (%s ). Defaulting "
404+ " the middleware_position to 0 ." ,
396405 middleware_position ,
397406 len (settings_middleware ),
398407 )
399- middleware_position = len (settings_middleware )
408+ middleware_position = 0
409+
400410 if is_sql_commentor_enabled :
401411 settings_middleware .insert (
402412 middleware_position , self ._sql_commenter_middleware
0 commit comments