Registry / workflow / flower

flower

JSON →
library2.1.0pypypi✓ verified 25d ago

Flower is a real-time web-based monitor and administration tool for Celery distributed task queues. It provides a visual dashboard for task progress and history, worker status, remote control capabilities (e.g., shutdown workers, control pool size), and an HTTP API. It is actively developed and is the recommended monitoring solution for Celery clusters.

pip install flower
INSTALL
IMPORT
SIG · FLOWER
F
flower
workflowpythonv2.1.0
Install
4.2s avg
Import
Disk
48MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v2.1.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 51MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 4.2s · import 0.000s · 51MB
48MB installed
● package 48MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Flower (command-line tool)
celery --broker=BROKER_URL flower
Flower is primarily designed to be run as a standalone command-line application, not typically imported into other Python applications for its core monitoring functionality.

This quickstart demonstrates setting up a basic Celery application and then launching Flower to monitor it. Ensure a message broker (like Redis or RabbitMQ) is running and accessible at the specified URL. Flower runs as a separate process and is accessed via a web browser.

import os from celery import Celery # 1. Set up a simple Celery app app = Celery( 'my_app', broker=os.environ.get('CELERY_BROKER_URL', 'redis://localhost:6379/0'), backend=os.environ.get('CELERY_BACKEND_URL', 'redis://localhost:6379/0') ) @app.task def add(x, y): return x + y # To run Celery worker (in a separate terminal): # celery -A my_app worker --loglevel=info # To run Flower (in another separate terminal): # celery -A my_app flower --port=5555 # Or, if not using an app instance directly: # celery --broker=redis://localhost:6379/0 flower --port=5555 # Then open http://localhost:5555 in your browser.
celery --version
Debug
Known issues
breakingUpgrading Celery to version 5.0.0 (and potentially later minor versions in the 5.x series) previously caused `ImportError: cannot import name 'Command' from 'celery.bin.base'` in Flower. This was due to internal API changes within Celery.
fix
Ensure your Flower version is compatible with your Celery version. Consult Flower's release notes and Celery's change log for compatibility. Downgrading Celery or upgrading Flower might be necessary. Using the official Flower Docker image can help isolate dependencies.
affects: Flower versions prior to patches supporting Celery 5.x
gotchaFlower's default persistence for task history uses Python's `shelve` module, which is primarily in-memory and can lead to complete loss of task history upon Flower restarts or crashes. It also doesn't scale well with a large number of tasks or workers.
fix
For production or long-term monitoring, configure `--state_save_interval` (in milliseconds) to periodically save state to disk. Be aware that this still stores data in a non-robust format. For true persistence and scalable metrics, integrate Flower with external monitoring systems like Prometheus and Grafana, or consider alternative Celery monitoring solutions that use proper databases.
affects: All versions
gotchaFlower is exposed without any authentication by default, making it vulnerable if deployed publicly without proper security measures. This can expose sensitive task and worker information.
fix
Always enable authentication when deploying Flower in any environment accessible outside a local development machine. Options include HTTP Basic Authentication (`--basic_auth`), Google OAuth, GitHub OAuth, GitLab OAuth, or running it behind a reverse proxy with its own authentication.
affects: All versions
gotchaWhen using RabbitMQ as a broker, especially with cloud providers like CloudAMQP, the 'Broker' tab in Flower might not function correctly or show all details without explicitly providing the RabbitMQ HTTP API URL.
fix
Use the `--broker_api` flag to specify the URL of the RabbitMQ HTTP API, including user credentials. For example: `--broker_api=https://user:password@hostname:443/api/`.
affects: All versions using RabbitMQ
Upgrade
Version history
2.1.0latest on PyPI · released Aug 16, 2026
Audit
Dependencies
celeryrequiredFlower is a monitoring tool specifically for Celery.
redisoptionalCommon message broker for Celery, often used with Flower.
rabbitmqoptionalCommon message broker for Celery, often used with Flower.
Agent activity
39 hits · last 30 days
node
32
OpenAI (training)
2
Amazon
1
Resources
flower — pip install flower · libregistry