3

I'm trying to populate the Broker tab on Celery Flower but when I pass a broker_api like the following example:

python manage.py celery flower --broker_api=http://guest:guest@localhost:15672/api/

I get the following error:

state.py:108  (run) Failed to inspect the broker: 'list' object is not callable

I'm confident the credentials I'm using are correct and the RabbitMQ Management Plugin is enabled. I'm able to access the RabbitMQ monitoring page through the browser.

  • flower==0.6.0
  • RabbitMQ 3.2.1

Does anyone know how to fix this?

krd
  • 2,096
  • 2
  • 14
  • 11
  • Can you open a bug report in https://github.com/mher/flower/issues/new and include the stack trace with debug logging (with --debug option)? – mher Mar 28 '14 at 08:31

2 Answers2

0

Try removing the slash after /api/:

python manage.py celery flower --broker_api=http://guest:guest@localhost:15672/api

Matt
  • 978
  • 10
  • 24
0

Had the same issue on an Airflow setup with Celery 5.2.6 and Flower 1.0.0. The solution for me was to launch Flower using:

airflow celery flower --broker-api=http://guest:guest@rabbitmq:15672/api/

For non-Airflow readers, I believe the command should be:

celery flower --broker=amqp://guest:guest@rabbitmq:5672 --broker_api=http://guest:guest@rabbitmq:15672/api/

A few remarks:

  • The above assumes a shared Docker network. If that's not the case, every @rabbitmq should be replaced with e.g. @localhost
  • --broker is not needed if running under Airflow's umbrella (it's passed from the Airflow config)
  • A good test to verify the API works is to access http://guest:guest@localhost:15672/api/index.html locally
swimmer
  • 1,971
  • 2
  • 17
  • 28