Code Monkey home page Code Monkey logo

flower's Introduction

Flower

https://travis-ci.org/mher/flower.svg?branch=master

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

Installing flower with pip is simple

$ pip install flower

Development version can be installed with

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

Usage

Important Please note that from version 1.0.1 Flower uses Celery 5 and has to be invoked in the same style as celery commands do.

The key takeaway here is that the Celery app's arguments have to be specified after the celery command and Flower's arguments have to be specified after the flower sub-command.

This is the template to follow:

celery [celery args] flower [flower args]

Core Celery args that you may want to set:

-A, --app
-b, --broker
--result-backend

More info on available Celery command args.

For Flower command args see here.

Usage Examples

Launch the Flower server at specified port other than default 5555 (open the UI at http://localhost:5566):

$ celery flower --port=5566

Specify Celery application path with address and port for Flower:

$ celery -A proj flower --address=127.0.0.6 --port=5566

Launch using docker:

$ docker run -p 5555:5555 mher/flower

Launch with unix socket file:

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

Broker URL and other configuration options can be passed through the standard Celery options (notice that they are after Celery command and before Flower sub-command):

$ celery -A proj --broker=amqp://guest:guest@localhost:5672// flower

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.

Documentation

Documentation is available at Read the Docs and IPython Notebook Viewer

License

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

flower's People

Contributors

adamgreig avatar alexferl avatar andresriancho avatar ask avatar asmodehn avatar bhargav95 avatar bmwant avatar btoueg avatar david-thorman avatar geoffjukes avatar hughes avatar igeorgievsky avatar itssimon avatar jerzyk avatar jetz avatar jzhou77 avatar kouk avatar krillr avatar logston avatar lpsinger avatar lucmult avatar melevir avatar mher avatar mjschultz avatar mozillazg avatar pazur avatar robbles avatar tbarbugli avatar tebeka avatar tomasz-kluczkowski avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.