Skip to content

ikvk/django_dramatiq_charts

Repository files navigation

django_dramatiq_charts 📊

Draw charts by django_dramatiq task history in db.

Chart types: load and timeline.

https://img.shields.io/pypi/dm/django_dramatiq_charts.svg?style=social

Python version 3.6+
License Apache-2.0
PyPI https://pypi.python.org/pypi/django_dramatiq_charts/
$ pip install django-dramatiq-charts

Requirements:

  • Django 2.2+
  • dramatiq 1.11+
  • django-dramatiq 0.10.0+
  1. Add django_dramatiq_charts to installed apps after django_dramatiq app:
INSTALLED_APPS = [
    'django_dramatiq',
    'django_dramatiq_charts',
    'my_app',
    # ...
]
  1. Add lib views to your urls:
from django_dramatiq_charts.views import load_chart, timeline_chart, clean_cache

urlpatterns = [
    path('django_dramatiq_charts/load_chart/', load_chart, name='ddc_load_chart'),
    path('django_dramatiq_charts/timeline_chart/', timeline_chart, name='ddc_timeline_chart'),
    path('django_dramatiq_charts/clean_cache/', clean_cache, name='ddc_clean_cache'),
    # ...
]
  1. Configure lib in your project settings file:
Parameter Description Default
DJANGO_DRAMATIQ_CHARTS_PERM_FN users with access to the charts def fn(request): return request.user.is_superuser
DJANGO_DRAMATIQ_CHARTS_LOAD_QS_FILTER Additional queryset filter for load chart None
DJANGO_DRAMATIQ_CHARTS_TIMELINE_QS_FILTER Additional queryset filter for timeline chart None
DJANGO_DRAMATIQ_CHARTS_CACHE_FORM_DATA_SEC Minutes to cache choices of queue and actor form fields (False-like to disable) 4 hours

Shows the number of simultaneously executed actors in each time interval on timeline

docs/load_chart.png

Tasks running more than one day are not counted (assumed to be an error).

Shows actors on timeline

docs/timeline_chart.png

If the task duration is less than a second, this task is displayed on the chart with a duration of 1 second.

History of important changes: release_notes.rst

Thanks to all who helped develop this library:

MilkyCake, lexa2907, python, django, plotly, jquery, select2, flaticon.com