All Projects → mehdigmira → Celery Dashboard

mehdigmira / Celery Dashboard

Licence: mit
A dashboard to monitor your celery app

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Celery Dashboard

Flask jsondash
🐍 📊 📈 Build complex dashboards without any front-end code. Use your own endpoints. JSON config only. Ready to go.
Stars: ✭ 3,215 (+7937.5%)
Mutual labels:  dataviz, dashboard
IATI.cloud
The open-source IATI datastore for IATI data with RESTful web API providing XML, JSON, CSV output. It extracts and parses IATI XML files referenced in the IATI Registry and powered by Apache Solr.
Stars: ✭ 35 (-12.5%)
Mutual labels:  dataviz, celery
Docker Superset
Repository for Docker Image of Apache-Superset. [Docker Image: https://hub.docker.com/r/abhioncbr/docker-superset]
Stars: ✭ 86 (+115%)
Mutual labels:  celery, dashboard
Mozaik
Mozaïk is a tool based on nodejs / react / redux / nivo / d3 to easily craft beautiful dashboards
Stars: ✭ 3,546 (+8765%)
Mutual labels:  dataviz, dashboard
Solarthing
Monitors an Outback MATE and a Renogy Rover - MPPT Charge Controller. Integrates with Grafana, PVOutput and more!
Stars: ✭ 33 (-17.5%)
Mutual labels:  dashboard
Falcon Celery
Example of how to handle background processes with Falcon, Celery, and Docker
Stars: ✭ 29 (-27.5%)
Mutual labels:  celery
Idb Idb Invest Coronavirus Impact Dashboard
Follow the impact of COVID-19 outbreak in Latin America in real time
Stars: ✭ 28 (-30%)
Mutual labels:  dashboard
Framework
The Framework is a set of components and tools which brings the user an interface (GUI / API) to setup, extend and manage an Open vStorage platform.
Stars: ✭ 27 (-32.5%)
Mutual labels:  celery
Dcmp
Docker Container Management Platform(Dashboard UI)
Stars: ✭ 39 (-2.5%)
Mutual labels:  dashboard
Gpudashboard
A simple dashboard for NVIDIA GPU
Stars: ✭ 37 (-7.5%)
Mutual labels:  dashboard
Pgwatch2
PostgreSQL metrics monitor/dashboard
Stars: ✭ 960 (+2300%)
Mutual labels:  dashboard
Osiris
Lutece judge core based on Celery and Docker.
Stars: ✭ 30 (-25%)
Mutual labels:  celery
Iota Prom Exporter
Iota Exporter for Prometheus Metrics
Stars: ✭ 33 (-17.5%)
Mutual labels:  dashboard
Docker Airflow
Repo for building docker based airflow image. Containers support multiple features like writing logs to local or S3 folder and Initializing GCP while container booting. https://abhioncbr.github.io/docker-airflow/
Stars: ✭ 29 (-27.5%)
Mutual labels:  celery
D3 In Motion
Code examples and references for the course "D3.js in Motion"
Stars: ✭ 37 (-7.5%)
Mutual labels:  dataviz
Portal
General-purpose web UI for Tinkerbell.
Stars: ✭ 28 (-30%)
Mutual labels:  dashboard
Dashvis
An open-source Dashboard built for users, to organize their resources via Tables and Folders.
Stars: ✭ 31 (-22.5%)
Mutual labels:  dashboard
Jquery Mapael
jQuery plugin based on raphael.js that allows you to display dynamic vector maps
Stars: ✭ 981 (+2352.5%)
Mutual labels:  dataviz
Vue Auth Boilerplate
🔑 Vue.js scalable boilerplate with user authentication.
Stars: ✭ 31 (-22.5%)
Mutual labels:  dashboard
Angular Gridster2
Angular gridster 2
Stars: ✭ 956 (+2290%)
Mutual labels:  dashboard

Celery Dashboard

Build Status

This package allows you to have access to a dashboard for your celery application. It was built with two main goals:

  • Have a persistent and complete view of how your tasks and queues are behaving.
  • Have a simple codebase in order for it to be easily extensible.

Advantages over Flower

  • A simple codebase: We use celery's signals api to register all tasks state from being queued to being ran or revoked.
  • No single point of failure: Flower spawns a thread that listens to all events. Using the signals api allows us to delegate the work: each worker is responsible of keeping track of its tasks.
  • A modern UI (Vue.js + Vuetify)
  • Data is stored in a PostgreSQL database, making it persistent and available from anywhere even if your dashboard's webserver happens to crash.
  • Allow keeping track of the progress of long running tasks

Screenshots

Image of Dashboard Image of Dashboard Image of Dashboard Image of Dashboard Image of Dashboard

Requirements & compatibility

A PostgreSQL database >= 9.5 is required. The code has been tested for celery version 3.1 and 4.1 running under both python 2.7 and python 3.5.

Getting started

The first thing to do after installing the package is to update the python file where your celery application is created as follows:

from celery import Celery

from celery_dashboard import init

celery_app = Celery('test_app', broker='redis://localhost', backend='redis://localhost')

init(celery_app,
     "YOU POSTGRES DATABASE URI (e.g postgresql://docker:[email protected]:5432/docker)",
     "YOUR DASHBOARD USERNAME", "YOUR DASHBOARD PASSWORD")

@celery_app.task(name="divide")
def div(x, y):
    return x / y

That's it ! your app is all setup. Now if you want to checkout the dashboard you just need to run celery -A <your_app> dashboard And the dashboard will be running on localhost:5000. If you want to specify an other port you can add --port=<your_port> to the command line

Database cleaning

In order to keep you database size under control, the init() function will automatically setup some cleaning tasks in your beat schedule.

By default these tasks will clean:

  • your SUCCESS tasks that are 4 hours old
  • your STARTED tasks that are 1 hour old. In case a worker crashes (killed with a SIGKILL for example) it will not be able to update its running task's status. So this task will stay in a STARTED status forever. In order to clean these tasks, we assume that if a task is in STARTED status for more that an hour, it should be cleaned.

You can of course override this settings by passing the cleaning_thresholds paramater to the init function. cleaning_thresholds is a dict with statuses as keys and thresholds as values (in seconds), such as:

{"STARTED": 3600, "SUCCESS": 3600 * 4}

All these tasks will be routed to the queue celery_dashboard.

So you should have a beat schedule running (celery -A <your_app> beat) and a worker that processes tasks in the celery_dashboard queue (celery -A <your_app> worker -Q celery_dashboard)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].