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.

Below are a few examples of how to leverage E2E observability in Helios when using Celery async jobs.

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.


๐Ÿ–ค

Helios is a a dev-first observability platform that helps dev and ops teams shorten the time to find and fix issues in distributed applications. Built on OpenTelemetry, Helios provides traces and correlates them with logs and metrics, enabling end-to-end app visibility and faster troubleshooting.

Get started for free with Helios to simplify and enrich OpenTelemetry distributed tracing.