Awesome Open Source
Awesome Open Source

Flower

.. image:: https://github.com/mher/flower/workflows/Build/badge.svg :target: https://github.com/mher/flower/actions

.. image:: https://img.shields.io/pypi/v/flower.svg :target: https://pypi.python.org/pypi/flower

.. image:: https://travis-ci.org/mher/flower.svg?branch=master :target: https://travis-ci.org/mher/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, Google, Github, Gitlab and Okta OAuth

  • Prometheus integration

Installation

PyPI version: ::

$ pip install flower

Development version: ::

$ pip install https://github.com/mher/flower/zipball/master

Usage

Launch the server and open http://localhost:5555: ::

$ flower --port=5555

Launch from celery: ::

$ celery flower -A proj --address=127.0.0.1 --port=5555

Launch using docker: ::

$ docker run -p 5555:5555 mher/flower

Launch with unix socket file: ::

$ flower --unix-socket=/tmp/flower.sock

Broker URL and other configuration options can be passed through the standard Celery options: ::

$ celery flower -A proj --broker=amqp://guest:[email protected]:5672//

API

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_.

.. _API Reference: https://flower.readthedocs.io/en/latest/api.html .. _examples: http://nbviewer.ipython.org/urls/raw.github.com/mher/flower/master/docs/api.ipynb

Documentation

Documentation is available at Read the Docs_ and IPython Notebook Viewer_

.. _Read the Docs: https://flower.readthedocs.io .. _IPython Notebook Viewer: http://nbviewer.ipython.org/urls/raw.github.com/mher/flower/master/docs/api.ipynb

License

Flower is licensed under BSD 3-Clause License. See the LICENSE file in the top distribution directory for the full license text.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
python (49,865
redis (885
monitoring (586
rabbitmq (237
asynchronous (227
celery (74
workers (51
administration (49
task-queue (19

Find Open Source By Browsing 7,000 Topics Across 59 Categories