Skip to main content

Django Snoopy

Django Snoopy is a pluggable profiling tool for Django Apps

Quick Start

  1. Add snoopy.middleware.SnoopyProfilerMiddleware to MIDDLEWARE_CLASSES

  2. (Optional) Configure Output if you don’t want to use the default log file output

  3. Profile your code!

Setting Custom Attributes:

In case you want to track something specific to your app, you can do this:

from snoopy.request import SnoopyRequest SnoopyRequest.record_custom_attributes({‘key’: ‘value’})

Any value set twice will just be overridden.

IMPORTANT: The data passed into this MUST be a JSON serializable dictionary.

Settings:

You can set these in your Django settings.py file to configure how Snoopy works

SNOOPY_COLLECT_SQL_QUERIES: True
  • Track all SQL queries done via the Django ORM

SNOOPY_OUTPUT_CLASS: ‘snoopy.output.LogOutput’
  • Set the class that defines how the collected info is processed at the end of the request. The options available out of the box are:

    • snoopy.output.LogOutput: This will create a file for each request in the folder specified by SNOOPY_LOG_OUTPUT_DIR. Defaults to the root folder of the app

    • snoopy.output.HTTPOutput: This will make a JSON formatted HTTP POST with the data in SNOOPY_HTTP_OUTPUT_URL

  • You can write your own Output class. All you need to do is to extend snoopy.output.OutputBase and implement the save_request_data method.

SNOOPY_USE_CPROFILE: False
  • Set to True if you want profiling

SNOOPY_CPROFILE_SHOW_ALL_FUNCTIONS: True
  • If this option is set to False, django-snoopy will take the parent directory of the main django settings file as the project root and will only list items in the cProfile output that are files under this directory (your actual app code)

DEFAULT_USE_BUILTIN_PROFILER’: False
  • Set to True if you want to use the built-in profiler/tracer

DEFAULT_BUILTIN_PROFILER_SHOW_ALL_FUNCTIONS’: True
  • Like the cProfile option counterpart, allows you to specify if you want data about all or just your own code.

Metadata

Release files for django-snoopy 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-snoopy 0.0.2
File Size Uploaded
django-snoopy-0.0.2.tar.gz 6.6 kB Details

Release files / django-snoopy-0.0.2.tar.gz

Download URL django-snoopy-0.0.2.tar.gz
Size 6.6 kB
Tags Source
SHA-256 checksum
How to use checksums
78632ba986066de14028af39021b96ec25de7d9b9f6f41d831a06d2d7736ae55
BLAKE2b-256 checksum
How to use checksums
6179d0d24dff34c996743b878242117a60ac47ec0b7ea0650b43e06bd3076db8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page