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.