Django Web Application
On this page, we help you install ShortLoop SDK in your Django web application, so that it can automatically sample traffic.
Python version -
3.7 or higher
Django version -
3.0 or higher.
Install ShortLoop Python SDK.
$ pip install shortloop-python==0.1.8
To configure the SDK, you need to add it as a middleware in your application. This can be done in your Django settings module (normally at
MIDDLEWARE = [ ... 'shortloop_python.integrations.ShortLoopDjangoMiddleware', ... ... ]
Django applies middleware in the order it's defined in MIDDLEWARE (top-down). Put ShortLoop's middleware as high as possible in the middleware chain to get the most accurate traffic data.
Import the SDK from installed package on top of your Django settings module.
Initialize SDK with options -
ApplicationName as shown in below example and register the middleware.
shortloop_python.init( url="https://shortloop.company-name.com", # the shortloop url for your org. (Provided by ShortLoop team.) application_name="service-name", # your application name here auth_key="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # ShortLoop Auth Key. (Provided by ShortLoop team.) environment="your-environment" # for e.g stage or prod )
To mask sensitive headers, provide an array as
mask_headers field as shown in below example.
mask_headers field is optional and headers are case insensitive.
shortloop_python.init( ... ... environment="your-environment", # for e.g stage or prod mask_headers=["cookie", "x-auth"] # [Optional]. The following headers values will be masked at the SDK level itself. (Will not be sent to the server) )
By default; ShortLoop SDK will capture a small percentage of traffic; so that the performance impact is almost nil. But for certain use-cases; or non production environments; traffic capturing can be configured to 'always'; in which case SDK will try to capture 100% of the Traffic.
shortloop_python.init( ... ... environment="your-environment", mask_headers=["cookie", "x-auth"], capture="always" # Requesting SDK to try to capture all the API calls. )
Setting the above property; doesn't guarantees that all the API calls will be captures. SDK will try to capture most of the Traffic; but if the traffic increases; the Samples will be dropped.
It is not recommended to set the above property in high traffic production environments which are performance and latency sensitive.
Quickly test if project is running after configuring SDK.
Run command maybe custom to your project.
python3 manage.py runserver
Django launches two processes (opens in a new tab)
for hot reload. SDK gets initialized once for each process. This will not cause any issues, except there will be
duplicate SDK logs on application boot. You can disable hot reload by giving
--noreload to the run command.
After the changes, redeploy your Django Application.
Feel free to email for a quick support, reporting bug or improvements suggestions. Sumit B Mulchandani (firstname.lastname@example.org)