Skip to main content

No project description provided

Project description

A Django application that exposes a bunch of PostgreSQL database metrics.

Background

At PyCon Canada 2017 Craig Kerstiens gave a talk “Postgres at any scale”. In his talk Craig pointed out a bunch of metrics one should look at to understand why a PostgreSQL database could be “slow” or not perform as expected.

This project adds a Django Admin view exposing these metrics to Django users with the is_superusers flag turned on.

Installation

Start by installing django-postgres-metrics from PyPI:

$ pip install django-postgres-metrics

You will also need to make sure to have psycopg2 or psycopg2-binary installed which is already a requirement by Django for PostgreSQL support anyway.

Then you need to add postgres_metrics to your INSTALLED_APPS list. Due to the way postgres_metrics works, you need to include it before the admin app:

INSTALLED_APPS = [
    'postgres_metrics.apps.PostgresMetrics',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

You also need to make sure that the request context processor is included in the TEMPLATES setting. It is included by default for projects that were started on Django 1.8 or later:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'OPTIONS': {
            'context_processors': [
                ...,
                'django.template.context_processors.request',
                ...,
            ],
        },
    },
]

Lastly, you need to add a URL path to your global urls.py before the admin URL patterns.

For Django 2.0 and up:

from django.urls import include, path
urlpatterns = [
    path('admin/postgres-metrics/', include('postgres_metrics.urls')),
    path('admin/', admin.site.urls),
]

For Django 1.11 and before:

from django.conf.urls import include, url
urlpatterns = [
    url(r'^admin/postgres-metrics/', include('postgres_metrics.urls')),
    url(r'^admin/', admin.site.urls),
]

Security

If you found or if you think you found a security issue please get in touch via info+django-postgres-stats *AT* markusholtermann *DOT* eu.

I’m working about this in my free time. I don’t have time to monitor the email 24/7. But you should normally receive a response within a week. If I haven’t got back to you within 2 weeks, please reach out again.

TESTING

To run the unit tests:

$ pip install tox
$ tox

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-postgres-metrics-0.6.2.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

django_postgres_metrics-0.6.2-py2.py3-none-any.whl (17.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-postgres-metrics-0.6.2.tar.gz.

File metadata

File hashes

Hashes for django-postgres-metrics-0.6.2.tar.gz
Algorithm Hash digest
SHA256 80e7baaa128e3e122a37fc2445582bdb2a2d01c8160639d18965c25cd27e076c
MD5 cc5b49093c9cdc778fe1c9259237f315
BLAKE2b-256 9feaef52c494ea70e2ffc0037451f9cb99729dc0951e6d0d1fd0e34b432613a1

See more details on using hashes here.

File details

Details for the file django_postgres_metrics-0.6.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_postgres_metrics-0.6.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b076889fc778fd888bb4aecb60cf512ed439c0229e03e4aa1478a07b9733d966
MD5 b77a452e73957d0a0be9239dda0414dd
BLAKE2b-256 5f497fb2f8d8c74e70a1c02b76c1e109d69fac43e4ccae4d1a3d77a1591b76bf

See more details on using hashes here.

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