Skip to content

Commit a62d9d9

Browse files
committed
add middleware_position feature in django
1 parent 7603a1f commit a62d9d9

File tree

1 file changed

+10
-2
lines changed
  • instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django

1 file changed

+10
-2
lines changed

Diff for: instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django/__init__.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -355,10 +355,18 @@ def _instrument(self, **kwargs):
355355

356356
is_sql_commentor_enabled = kwargs.pop("is_sql_commentor_enabled", None)
357357

358+
middleware_position = kwargs.pop("middleware_position", 0)
359+
if len(settings_middleware) < middleware_position:
360+
_logger.debug(
361+
"The middleware_position you provided (%d) is less than the current number of middlewares (%d). \
362+
Since the number of middlewares is less than the total, the Otel middleware will be appended at the end of the middleware chain.",
363+
middleware_position, len(settings_middleware)
364+
)
365+
middleware_position = len(settings_middleware)
358366
if is_sql_commentor_enabled:
359-
settings_middleware.insert(0, self._sql_commenter_middleware)
367+
settings_middleware.insert(middleware_position, self._sql_commenter_middleware)
360368

361-
settings_middleware.insert(0, self._opentelemetry_middleware)
369+
settings_middleware.insert(middleware_position, self._opentelemetry_middleware)
362370

363371
setattr(settings, _middleware_setting, settings_middleware)
364372

0 commit comments

Comments
 (0)