explaingit

mher/flower

7,171PythonAudience · ops devopsComplexity · 3/5LicenseSetup · moderate

TLDR

A live web dashboard for monitoring and controlling Celery background task workers. See which tasks are running, cancel stuck ones, adjust worker settings, and export metrics to Prometheus, all from a browser.

Mindmap

mindmap
  root((Flower))
    What it does
      Monitor live tasks
      Control workers
      View queue stats
    Worker controls
      Shutdown and restart
      Pool size
      Queue assignment
      Rate limits
    Auth
      HTTP Basic Auth
      OAuth providers
    Integrations
      Redis broker
      RabbitMQ broker
      Prometheus metrics
      REST API
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Monitor background email or image processing jobs in real time and see which ones failed or are running too long.

USE CASE 2

Restart a crashed Celery worker pool or change its concurrency without SSH-ing into the server.

USE CASE 3

Pull Celery task metrics into Prometheus for alerting and long-term dashboards.

Tech stack

PythonCeleryRedisRabbitMQPrometheus

Getting it running

Difficulty · moderate Time to first run · 30min

Requires an existing Celery application with a message broker such as Redis or RabbitMQ already running.

BSD 3-Clause license, use freely for any purpose, including commercial, as long as you keep the copyright notice and do not use the project name for endorsement.

In plain English

Flower is a web-based dashboard for monitoring and managing Celery, a Python system that runs background tasks across one or more worker processes. When you have an application that offloads time-consuming work, like sending emails, processing images, or running reports, Celery handles the scheduling and Flower gives you a window into what is actually happening. The main interface shows live task activity pulled directly from Celery events. You can see which tasks are running, how long they have been running, their input arguments, start times, and outcomes. Task history is also available for reviewing completed or failed work. Beyond viewing, Flower lets you control your workers from the browser. You can shut down or restart worker instances, change the size of the worker pool, adjust which task queues a worker is consuming from, and apply time limits or rate limits to tasks. Individual tasks can be cancelled or forcibly stopped. Flower also monitors the message broker layer, which is typically Redis or RabbitMQ. This gives you statistics on queue lengths and message throughput. Authentication is supported through HTTP Basic Auth or via OAuth with Google, GitHub, GitLab, or Okta. A Prometheus integration lets you pull metrics into external monitoring systems if you use that. There is also a REST API that lets you perform control operations programmatically, without going through the browser. For example, you can restart a worker pool or trigger a task with a single HTTP request. Flower is installable via pip and also available as a Docker image. Documentation is hosted on Read the Docs. The project is licensed under the BSD 3-Clause License.

Copy-paste prompts

Prompt 1
I'm running Celery workers and want to add Flower to monitor them. Walk me through installing Flower and connecting it to my Redis broker.
Prompt 2
A Celery task has been running for hours and I think it's stuck. How do I find it in Flower and cancel it?
Prompt 3
I want to restrict access to my Flower dashboard. How do I enable HTTP Basic Auth?
Prompt 4
My Celery queue is backing up. How do I use Flower to see queue depths and figure out which workers need to be scaled up?
Prompt 5
I want to trigger a Celery task from the command line without using the Flower browser UI. Show me the REST API call to do that.
Open on GitHub → Explain another repo

← mher on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.