Django Instrumentation
Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design.
Installation
First, install the opentelemetry-instrumentation-django
package. To add it to your project, add the following line to your requirements.txt
file:
# requirements.txt opentelemetry-instrumentation-django
To instrument queries performed via the Django ORM, install the instrumentation for the SQL database that your application uses:
Development setup
Django requires some extra setup, as it's usually the first thing started in an app.
As shown in the example below, the appsignal
module needs to be imported in the manage.py
file. Then in the main
method, the appsignal.start
method needs to be called to initialize the instrumentation configured in the __appsignal__.py
file.
Production setup (WSGI/ASGI)
In production, it is recommended to run Django using a WSGI or ASGI server, such as
Gunicorn or Uvicorn. In this scenario, the manage.py
file that is modified in the development setup above is never called.
To instrument your application when started as a WSGI or ASGI server, add the following
to your project's wsgi.py
file, if using a WSGI server:
Or to your project's asgi.py
file, if using an ASGI server:
Features
By default, the Django instrumentation reports incoming request parameters, like query strings and routing parameters.