Metadata-Version: 2.4
Name: celeryviz
Version: 0.0.3
Summary: A UI centric tool for visualising Celery task execution.
Author: Bhavya Peshavaria
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Topic :: System :: Monitoring
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp==3.9.5
Requires-Dist: aiosignal==1.3.1
Requires-Dist: amqp==5.2.0
Requires-Dist: async-timeout==4.0.3
Requires-Dist: attrs==23.2.0
Requires-Dist: bidict==0.23.1
Requires-Dist: billiard==4.2.0
Requires-Dist: celery==5.4.0
Requires-Dist: certifi==2024.2.2
Requires-Dist: charset-normalizer==3.3.2
Requires-Dist: click==8.1.7
Requires-Dist: click-didyoumean==0.3.1
Requires-Dist: click-plugins==1.1.1
Requires-Dist: click-repl==0.3.0
Requires-Dist: exceptiongroup==1.2.1
Requires-Dist: frozenlist==1.4.1
Requires-Dist: h11==0.14.0
Requires-Dist: idna==3.7
Requires-Dist: iniconfig==2.0.0
Requires-Dist: kombu==5.3.7
Requires-Dist: multidict==6.0.5
Requires-Dist: packaging==24.0
Requires-Dist: pluggy==1.5.0
Requires-Dist: prompt-toolkit==3.0.43
Requires-Dist: pytest==8.2.1
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: python-engineio==4.9.1
Requires-Dist: python-socketio==5.11.2
Requires-Dist: requests==2.32.2
Requires-Dist: simple-websocket==1.0.0
Requires-Dist: six==1.16.0
Requires-Dist: tomli==2.0.1
Requires-Dist: tzdata==2024.1
Requires-Dist: urllib3==2.2.1
Requires-Dist: vine==5.1.0
Requires-Dist: wcwidth==0.2.13
Requires-Dist: websocket-client==1.8.0
Requires-Dist: wsproto==1.2.0
Requires-Dist: yarl==1.9.4
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary

CeleryViz
=========

A UI centric tool for visualising Celery task execution.

[**Live Demo**](https://bhavya-tech.github.io/celeryviz_demo/)

<video src="https://github.com/user-attachments/assets/ec6b0f0e-2ad6-4a2c-8928-a7765fd96023"></video>


This project simplifies debugging of asynchronous Celery tasks by offering a visual representation of the task execution flow. Instead of combing through the log files, developers can use Celeryviz to visually trace and debug task processes more efficiently.

## Installation

1. Python library

```bash
pip install celeryviz
```

2. Docker image
```bash
docker pull bhavyatech/celeryviz:0.0.3
```

## Usage

#### 1. Create a celery project.
  - Use [this gist](https://gist.github.com/bhavya-tech/d937ef45905720014ee12fe332352966) for a minimal example.

```bash
curl https://gist.githubusercontent.com/bhavya-tech/d937ef45905720014ee12fe332352966/raw/0afac784adfb6b407fa83ce4b19e6f3cab4d80d9/example_app.py -o example_app.py
```

#### 2. Start the celery worker:

  - Ensure a message broker is running (can use [RabbitMQ](https://www.rabbitmq.com/docs/download) for simplicity)

  - Schedule a task for celery to run:

```bash
celery -A example_app call example_app.add --args='[1, 100]' --kwargs='{"z":10000}'
```

  - Run the celery worker.
```bash
celery -A example_app worker -l info -E
```

#### 3. Start the CeleryViz server:

##### 3.1 Using docker image
There are two ways to run celeryviz:

  1. Pass the broker url 
```bash
docker run -p 9095:9095 bhavyatech/celeryviz:0.0.3 celery --broker='<broker_url>' celeryviz
```

  2. Use the configuration of [celery application](https://docs.celeryq.dev/en/stable/userguide/application.html).
```bash
docker run -p 9095:9095 -v $PWD:/app bhavyatech/celeryviz:0.0.3 celery -A example_app.app celeryviz
```


##### 3.2 Using the installed celeryviz python library
  - In a new terminal, run the following command:

```bash
celery -A example_app celeryviz
```

#### 4. Connect to the server:
  -  Open your browser and go to [http://localhost:9095/app/]()

---

# Reporting violations

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [bhavyapeshavaria@gmail.com](mailto:bhavyapeshavaria@gmail.com). All complaints will be reviewed and investigated promptly and fairly.
