跳转至

芹菜

logfire.instrument_celery() 方法将为 Celery worker 执行的每个任务创建一个跨度。

安装

使用额外的芹菜安装 logfire

pip install 'logfire[芹菜]'
rye add logfire -E 芹菜
poetry add 'logfire[芹菜]'

用法

您需要一个消息代理来运行 Celery。在此示例中,我们将在 docker 容器上运行 RabbitMQ。您可以按如下方式运行它:

docker run -d --hostname my-rabbit \
    --name some-rabbit \
    # -e RABBITMQ_DEFAULT_USER=user \
    # -e RABBITMQ_DEFAULT_PASS=password \
    rabbitmq:3-management

下面我们有一个使用芹菜的最小示例。你可以用 celery -A tasks worker --loglevel=info 来运行它:

logfire.configure()

@worker_process_init.connect(weak=False) def init_celery_tracing(args, *kwargs): logfire.instrument_celery()

app = Celery("tasks", broker="pyamqp://localhost//") # (1)!

@app.task def add(x, y): return x + y

add.delay(42, 50) ```

  1. 使用 pip install pyamqp 安装 pyamqp

logfire.instrument_celery() 传递给 CeleryInstrumentor().instrument() 方法。


本文总阅读量