Skip to main content

Performance tracer middleware for Django

Project description

django-cavalry

A Performance Tracer!

CircleCI Codecov PyPI MIT License

Setup

  • Add 'cavalry.middleware.cavalry' to your middleware.
  • Add CAVALRY_ENABLED = bool(DEBUG) (or similar~) to your settings.

Settings – General

CAVALRY_ENABLED

(boolean, default False)

Master switch for the middleware.

This is toggleable during runtime. That is, it does not wholesale disable the middleware forever via the MiddlewareNotUsed mechanism.

CAVALRY_PROBABILITY

(float, default 1)

Probability (0..1) for a request to be traced; useful in production.

CAVALRY_DB_RECORD_STACKS

(boolean, default True)

Whether or not database stack traces should be recorded. Recording stack traces naturally has a performance impact.

Settings – Posting

The requests library must be available for posting to work.

You can install it by hand, or by using the [poster] extra while installing Cavalry.

CAVALRY_ELASTICSEARCH_URL_TEMPLATE

(string)

An URL template for posting payloads to Elasticsearch. {curly-braced} segments are interpolated using Python syntax. All fields in the payload are available, plus {ymd} is the YYYY-MM-DD of the current time. If falsy, no Elasticsearch posting is attempted.

An useful default might be 'http://localhost:9200/my-app-{ymd}/item'. This is easily ingestible by Kibana.

CAVALRY_THREADED_POST

(boolean, default False)

Whether or not to execute posting in another thread.

Enabling this has a positive performance impact in that formatting and submitting data to Elasticsearch data will not tie up request handling.

On the flipside, though, if the worker process dies before posting is complete, the trace is lost.

Also, if you're running on uWSGI, make sure enable-threads is set.

CAVALRY_POST_STACKS

(boolean, default True)

Whether or not post stack traces.

Not posting stack traces makes the ES payloads smaller.

Runtime

When running in DEBUG, or when you're a superuser, Cavalry injects a small perf bar into each rendered HTML page, as well as a script segment that outputs SQL queries into the dev console.

By default, stack traces are not printed for the SQL queries; add the _cavalry_stacks query parameter to have them printed too.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_cavalry-0.4.1.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

django_cavalry-0.4.1-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file django_cavalry-0.4.1.tar.gz.

File metadata

  • Download URL: django_cavalry-0.4.1.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for django_cavalry-0.4.1.tar.gz
Algorithm Hash digest
SHA256 7bfd31f8ed32887ca661eb74baafcd9dd1cc7cad92a8a66e43f9f46f6997ec59
MD5 0741094a957d3fd989333012f7877dd5
BLAKE2b-256 0b5f3e43e88f840c25078c4ec85445c107bd275f379cc39552c42b1c3a247f77

See more details on using hashes here.

Provenance

File details

Details for the file django_cavalry-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_cavalry-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 590f5ad2a78c3ec4d9b48d7c787dd319e0a96e89b74087c6d7813166566cfbf6
MD5 0937f2ece9b17a4c2ba90a5708edddac
BLAKE2b-256 c432828883e58029ab0d81486c97cdb619938cc6b1de540011d1797450a716fc

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page