Django Celery Flower
Flower is a web based tool for monitoring and administrating Celery clusters.
Features
-
Real-time monitoring using Celery Events
- Task progress and history
- Ability to show task details (arguments, start time, runtime, and more)
- Graphs and statistics
-
Remote Control
- View worker status and statistics
- Shutdown and restart worker instances
- Control worker pool size and autoscale settings
- View and modify the queues a worker instance consumes from
- View currently running tasks
- View scheduled tasks (ETA/countdown)
- View reserved and revoked tasks
- Apply time and rate limits
- Configuration viewer
- Revoke or terminate tasks
-
Broker monitoring
- View statistics for all Celery queues
- Queue length graphs
-
HTTP API
-
Basic Auth and Google OpenID authentication
API (TODO)
Flower API enables to manage the cluster via REST API, call tasks and receive task events in real-time via WebSockets.
For example you can restart worker's pool by:
$ curl -X POST http://localhost:5555/api/worker/pool/restart/myworker
Or call a task by:
$ curl -X POST -d '{"args":[1,2]}' http://localhost:5555/api/task/async-apply/tasks.add
Or terminate executing task by:
$ curl -X POST -d 'terminate=True' http://localhost:5555/api/task/revoke/8a4da87b-e12b-4547-b89a-e92e4d1f8efd
Or receive task completion events in real-time:
var ws = new WebSocket('ws://localhost:5555/api/task/events/task-succeeded/');
ws.onmessage = function (event) {
console.log(event.data);
}
For more info checkout API Reference and examples.
Requirements
- Django >= 1.11.222
- Celery >= 4.3
- jinja2 >= 2.10.1
Installation
PyPI version:
$ pip install django-flower
Development version:
$ pip install https://github.com/alexsilva/django-flower/zipball/master
Usage
Add app flower to django installed apps:
INSTALLED_APPS = [ ... 'flower' ]
Run the event command:
$ python manage flower_events
Documentation
Everything that needs to be configured in the sample project
flower_events - is a django command that serves as a backend and should run in the background.
Django settings variable:
FLOWER_RPC_HOST FLOWER_RPC_PORT FLOWER_INSPECT_TIMEOUT FLOWER_AUTH FLOWER_BASIC_AUTH FLOWER_OAUTH2_KEY FLOWER_OAUTH2_SECRET FLOWER_OAUTH2_REDIRECT_URI FLOWER_MAX_WORKERS FLOWER_MAX_TASKS FLOWER_DB FLOWER_PERSISTENT FLOWER_BROKER_API FLOWER_CA_CERTS FLOWER_CERTFILE FLOWER_KEYFILE FLOWER_XHEADERS FLOWER_AUTO_REFRESH FLOWER_COOKIE_SECRET FLOWER_ENABLE_EVENTS FLOWER_FORMAT_TASK FLOWER_NATURAL_TIME FLOWER_TASKS_COLUMNS FLOWER_AUTH_PROVIDER FLOWER_INSPECT
License
Flower is licensed under BSD 3-Clause License. See the LICENSE file in the top distribution directory for the full license text.
Getting help
Please head over to #celery IRC channel on irc.freenode.net or open an issue.
Contributing
If you'd like to contribute, simply fork the repository, commit your changes, run the tests (tox) and send a pull request. Make sure you add yourself to CONTRIBUTORS.
If you are interested in maintaining the project please contact.