Request Profiling¶
Nautobot offers advanced request profiling through django-silk. This allows administrators to collect debug information about user activities, which can be used to troubleshoot issues with the system.
User Setting¶
Request profiling may be enabled by individual users in their profile within the web interface. This can be found under the "Advanced Settings" section.
Once a user enables request profiling, all subsequent HTTP requests made by that specific user to the system will be logged by django-silk. This setting will persist until the user either logs out or disables the setting in their profile.
Silk UI¶
Nautobot administrators with super-user permissions can access the django-silk UI at the /silk/
URL.
From there, administrators can view details of individual requests, including timing, SQL queries, and cProfile artifacts.
Configuration¶
The Nautobot configuration comes out of the box with django-silk set up to support the above functionality. Those settings are described below, but it is not the intention of the Nautobot docs to describe all django-silk settings. Django-silk provides several other parameters that knowledgeable users may also be able to use, depending on the use case.
ALLOW_REQUEST_PROFILING¶
Default: False
Global setting to allow or deny users from enabling request profiling on their login session.
SILKY_PYTHON_PROFILER¶
Default: True
Enables use of the built-in Python cProfile profiler.
SILKY_PYTHON_PROFILER_BINARY¶
Default: True
Generates a binary .prof
file for each profiled request, which can be downloaded.
SILKY_PYTHON_PROFILER_EXTENDED_FILE_NAME¶
Default: True
Adds part of the request URL path to the profile file name to make it easier to identify specific requests.
SILKY_INTERCEPT_FUNC¶
Default: nautobot.core.settings.silk_request_logging_intercept_logic
This defines a custom function that filters requests to be profiled. Notably, the default looks for the user session flag described above.
SILKY_AUTHENTICATION¶
Default: True
Users must be authenticated to access the django-silk UI.
SILKY_AUTHORISATION¶
Default: True
Users must have permissions to access the django-silk UI. Used in combination with SILKY_AUTHENTICATION
.
SILKY_PERMISSIONS¶
Default: nautobot.core.settings.silk_user_permissions
This ensures the users must be a superuser of the system to access the django-silk UI. Used in combination with SILKY_AUTHENTICATION
and SILKY_AUTHORISATION
.