Skip to main content

A PostgreSQL profiler for Django that uses pg_stat_statements extension

Project description

django_pg_stat_statements

CircleCI PyPI Version Python Versions

A PostgreSQL query profiler for Django that uses pg_stat_statements extension.

Changelog

v0.1.0

  • Forked from django-pg-trunk

Requirements

  • Python >= 3.7
  • PostgreSQL >= 9.2
  • Django >= 2.2

Installation

Install using pip:

pip install django-pg-stat-statements

Then add django_pg_stat_statements to your INSTALLED_APPS.

INSTALLED_APPS = [
    ...
    'django_pg_stat_statements',
]

django-pg-stat-statements will automatically install pg_stat_statements extension for PostgreSQL if it doesn't exist, however pg_stat_statements should be added to shared_preload_libraries in the PostgreSQL config.

Usage

After installing the package, database queries can be examined under PostgreSQL Stat Statements > Query Statistics in Django admin.

Screen Shot 2022-01-23 at 14 08 23

Change view have more detailed statistics. All of the columns of pg_stat_statements can be found here.

Screen Shot 2022-01-23 at 14 09 01

A possible usecase of QueryStatistic model can be running a cron job that checks if there is a query that takes more time than a specific thershold, and send related alerts (emails, Slack notifications, etc.).

Contribution

As a first step, please open an issue about the feature/bug.

  • Build and run tests with docker-compose:

    docker-compose build test_app && docker-compose run --rm test_app
    
  • Tests can be run using pytest command. Tests for different environments will be run on CircleCI.

  • Changes on Django Admin can be tested using python manage.py runserver 0:8000 in development Docker container and navigating to http://127.0.0.1/admin.

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_pg_stat_statements-0.1.0.tar.gz (11.1 kB view hashes)

Uploaded Source

Built Distribution

django_pg_stat_statements-0.1.0-py3-none-any.whl (12.7 kB view hashes)

Uploaded Python 3

Supported by

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