Distributed tracing with Celery distributed task queue

Helios' instrumentation of Celery enables developers to visualize their async jobs that are a part of the E2E applicative flows.

Configuration

As long as only a single service is used to declare and run the Celery tasks, Once Helios is installed and running in your service, no further configuration is necessary for proper Celery instrumentation.

In case you are using Celery across multiple services, or even if the Celery tasks are defined in a different service, you must declare the task in the service which pushes the job:

APP.task(name="celery_task")  
def celery_task():  
    pass

Where APP is your Celery application.

Tracing & visualization

A Celery task run will show as a 'Task' in a specific service along with the name of the task. For example, the following service has 3 different Celery tasks.

The visualization groups together the triggers and tasks which are originated from the same service, so it will be clear what belongs to a single service.