feat: Implemented observability layer and benchmarking

This commit is contained in:
2026-07-03 11:20:23 +05:30
parent 9713a12591
commit c9ec297a5f
7 changed files with 202 additions and 101 deletions

View File

@@ -9,7 +9,7 @@
An asynchronous transactional data cleaning, validation, and LLM powered categorization pipeline.
## 🚀 Features
## Features
- Reads multi format dates and handles missing transaction IDs by auto generating unique fallbacks, and parses messy amounts with currency signs and commas cleanly.
- Offloads validation, spend conversion, and analysis to a Celery background worker backed by Redis.
@@ -20,13 +20,11 @@ An asynchronous transactional data cleaning, validation, and LLM powered categor
- Flags domestic transactions in USD currency.
- Flags high value transactions and transactions with fraud indicative keywords.
## 🐳 Self Hosting & Deployment
## Self Hosting & Deployment
We publish production-ready images to **GitHub Container Registry (GHCR)**. You can pull them directly or run them via Docker Compose.
### Option A: Docker Compose (Using Pre-built Images)
Create a `docker-compose.yml` file to self-host the entire stack:
Create a `docker-compose.yml` file to host the entire stack (or just clone the repo and directly run `docker compose up -d` :
```yaml
version: "3.8"
@@ -104,36 +102,3 @@ Launch the stack:
```bash
docker compose up -d
```
### Option B: Direct Pull (Manual Run)
You can pull and run individual containers manually from GHCR:
1. **Pull the images**:
```bash
docker pull ghcr.io/sortedcord/alemno-payments/web:latest
docker pull ghcr.io/sortedcord/alemno-payments/worker:latest
```
2. **Run Web (FastAPI API Server)**:
```bash
docker run -d \
--name alemno_web \
-p 3000:3000 \
-e POSTGRES_HOST=your-db-host \
-e REDIS_HOST=your-redis-host \
-e GEMINI_API_KEY=your-gemini-api-key \
ghcr.io/sortedcord/alemno-payments/web:latest
```
3. **Run Worker (Celery Processing Worker)**:
```bash
docker run -d \
--name alemno_worker \
-e POSTGRES_HOST=your-db-host \
-e REDIS_HOST=your-redis-host \
-e GEMINI_API_KEY=your-gemini-api-key \
ghcr.io/sortedcord/alemno-payments/worker:latest celery -A app.worker.celery_app worker --loglevel=info
```