django-pgstats
django-pgstats
provides commands and models for tracking internal postgres stats. Specifically, the pgstats.models.IndexStats model stores stats about postgres indices and the pgstats.models.TableStats model stores stats about postgres tables.
Usage
Postgres stat tables contain global statistical information. django-pgstats
is meant to be executed periodically so that one can later analyze table and index usage. This is done by periodically calling python manage.py snapshot_pgstats
using a task runner such as Celery.
Stats are stored as JSON fields in the respective IndexStats
and TableStats
models. Each key in the JSON field is in the format of
{schema}.{table}
for table stats or {schema}.{table}.{index}
for index stats.
Compatibility
django-pgstats
is compatible with Python 3.8 - 3.12, Django 3.2 - 4.2, Psycopg 2 - 3, and Postgres 12 - 16.