Django Instrumentation

AppSignal for PythonThis feature requires version 0.1.0 or higher.
DjangoThis feature requires version 1.10 or higher.

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design.

Install the Instrumentation

Don't forget to install the AppSignal for Python package in your application first.

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

The AppSignal for Python integration will automatically use this instrumentation when the corresponding package is installed. To disable this instrumentation without uninstalling the package, use the disable_default_instrumentations configuration option.


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 file. Then in the main method, the appsignal.start method needs to be called to initialize the instrumentation configured in the file.

# #!/usr/bin/env python """Django's command-line utility for administrative tasks.""" import os import sys # Add this import statement from __appsignal__ import appsignal def main(): """Run administrative tasks.""" os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<YOUR_APP_NAME_HERE>.settings') # Add this method call appsignal.start() try: from import execute_from_command_line except ImportError as exc: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH environment variable? Did you " "forget to activate a virtual environment?" ) from exc execute_from_command_line(sys.argv) if __name__ == '__main__': main()

By default, the Django instrumentation reports incoming request parameters, like query strings and routing parameters.

Do not send Personal Identifiable Information (PII) to AppSignal. You must ensure that PII (such as personal names, email addresses, passwords, etc.) is filtered before data is sent to AppSignal. If you must identify a person, consider using a user ID, hash or pseudonymized identifier instead.