Flower Celery 监控工具的简单使用

根据官方文档整理而得

安装

pip 安装 flower

$ pip install flower

或者 easy_install

$ easy_install flower

用法

运行服务

$ flower --port=5555

或者从Celery运行:

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

Broker URL和其他配置选项能够通过一个标准的Celery选项:

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

并打开http://localhost:5555:

配置

flower能够通过命令行配置:

$ flower --auto_refresh=False

使用 flowerconfig.py 配置文件:

#中间人设置为RabbitMQ
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
# RabbitMQ 管理pai
broker_api = 'http://guest:guest@localhost:15672/api/'
# 设置日志等级
logging = 'DEBUG'

或者,使用环境变量,所有的flower选项应该以FLOWER_为前缀。:

$ export FLOWER_BASIC_AUTH=foo:bar

通过命令行配置的选项优先级高于配置文件定义的选项,配置文件的名称和路径可以通过 conf 选项.

选项

标准的Celery配置可以被配置文件重写,查看Celery Configuration reference_ 所有变量清单和默认值。

Celery命令行选项一样可以通过Flower,如–broker设置默认的broker地址:

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

查看选项清单:

$ celery --help
address
auth
auto_refresh
basic_auth
broker_api
certfile
conf
db
debug
enable_events
format_task
inspect_timeout
keyfile
max_tasks
natural_time
persistent
port
xheaders
tasks_columns
address

通过给定的地址运行http服务

auth
使谷歌的OpenID认证。auth是一个邮箱的正则去授予访问权限,更多信息查看:ref:google-openid
auto_refresh
自动刷新控制面板(默认,auto_refresh=True)
basic_auth
使用HTTP基础认证,basic_auth是:分隔的值username:passworrd,更多信息查看:ref:basic-auth.
broker_api
Flower使用 RabbitMQ Managment Plugin 获取队列信息,broker_api是RabbitMQ HTTP API地址包括用户凭据。.

$ flower -A proj --broker_api=http://username:password@rabbitmq-server-name:15672/api/

注解
默认managment plugin不可用,通过下面命令启动:

$$ rabbitmq-plugins enable rabbitmq_management

注解
The port number for RabbitMQ versions prior to 3.0 is 55672.
certfile
SSL证书文件的路径

conf
配置文件路径 (by default, flowerconfig.py)

db
数据库文件的使用,如果持久模式开启的话(by default, db=flower)

debug
使用调试模式 (by default, debug=False)

enable_events
定期启用 Celery events通过enable_events命令(默认,enable_event=True

format_task
修改默认的task格式,format_task函数应该在配置文件flowerconfig.py 中定义,接受task对象并返回修改过的task。
format_task对过滤掉敏感信息十分有用

如下例子,如果过来参数并限制输出长度:

from flower.utils.template import humanize

def format_task(task):
    task.args = humanize(task.args, length=10)
    task.kwargs.pop('credit_card_number')
    task.result = humanize(task.result, length=20)
    return task

inspect_timeout
设置worker检查超时(默认,inspect_timeout=10000 毫米)

keyfile
SSL key文件路径

max_tasks
内存中保留最大的task数目(默认,max_tasks=10000)

natural_time
显示相对于时间的刷新时间,(默认natural_time=True

persistent
启用持久模式,如果打开了则Flower保存当前状态并在重新启动重载,(默认,persistent=False)

port
设置HTTP服务端口,默认port=5555

xheaders
启用X-Real-Ip 和 X-Scheme headers,(默认,xheaders=False)

tasks_columns
指定用逗号分隔的列清单在/tasks/页面,Avalible slugs: name, uuid, state, args, kwargs, result, received, started, runtime

你可能感兴趣的:(技术分享)