Developer-first visual backend devtools for Django, Flask, and FastAPI
Project description
TraceGarden
Developer-first visual backend devtools for Django, Flask, and FastAPI.
TraceGarden captures request timelines (DB + HTTP + spans + Celery) into local SQLite and serves a built-in UI at /__tracegarden.
Features
- WSGI + ASGI support (
Django,Flask,FastAPI) - OTel-native span ingestion into local TraceGarden UI
- DB query fingerprinting, grouping, duplicate and N+1 detection
- Outgoing HTTP inspector (
requests/httpx) - Celery stitching (
web request -> queued task -> worker state) - Trace bundle export (single JSON artifact)
- Development guardrails: redaction by default + UI token protection
Installation
pip install tracegarden
# extras
pip install tracegarden[django]
pip install tracegarden[flask]
pip install tracegarden[fastapi]
pip install tracegarden[celery]
Quick Start
Django (one app + one middleware)
# settings.py
INSTALLED_APPS = [
...,
"tracegarden.integrations.django",
]
MIDDLEWARE = [
"tracegarden.integrations.django.middleware.TraceGardenMiddleware",
...,
]
TRACEGARDEN = {
"enabled": True,
"ui_token": "dev-secret",
"ui_token_header": "X-TraceGarden-Token",
"ui_prefix": "/__tracegarden",
}
# urls.py
from tracegarden.ui.routes import mount_django_urls
urlpatterns = mount_django_urls() + urlpatterns
Flask (init extension)
from flask import Flask
from tracegarden import TraceGarden
app = Flask(__name__)
TraceGarden(app, ui_token="dev-secret")
FastAPI (one middleware)
from fastapi import FastAPI
from tracegarden import TraceGardenConfig
from tracegarden.core.storage import TraceStorage
from tracegarden.integrations.fastapi.middleware import TraceGardenMiddleware
from tracegarden.ui.routes import mount_fastapi_router
app = FastAPI()
config = TraceGardenConfig(ui_token="dev-secret")
storage = TraceStorage(db_path=config.db_path)
app.add_middleware(TraceGardenMiddleware, config=config, storage=storage)
mount_fastapi_router(app, config=config, storage=storage)
UI Access
Default route: /__tracegarden/
Pass token using one of:
- header:
X-TraceGarden-Token: dev-secret - query param:
?token=dev-secret - cookie:
tg_token=dev-secret
Screenshots
OpenTelemetry
from tracegarden.otel.setup import setup_otel
setup_otel(
service_name="my-api",
also_export_to_tracegarden=True,
)
What gets recorded
End-to-end examples
See examples/README.md.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tracegarden-0.1.7.tar.gz.
File metadata
- Download URL: tracegarden-0.1.7.tar.gz
- Upload date:
- Size: 322.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f8db6f6d2aa2eca5edd8f9f62a5c54d61d60fa8375cbc13e940fc9d75c2e22a
|
|
| MD5 |
f62678d07a1bf7c6159367b36c7a9c96
|
|
| BLAKE2b-256 |
6636f186c5b33a3e16550412f2de84360c22085685e9f5afbc57821eacb19dec
|
Provenance
The following attestation bundles were made for tracegarden-0.1.7.tar.gz:
Publisher:
release.yml on peidrao/tracegarden
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tracegarden-0.1.7.tar.gz -
Subject digest:
7f8db6f6d2aa2eca5edd8f9f62a5c54d61d60fa8375cbc13e940fc9d75c2e22a - Sigstore transparency entry: 1262900402
- Sigstore integration time:
-
Permalink:
peidrao/tracegarden@3105f49f10be2b221a016aac4a7060f0eaf5c56d -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/peidrao
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3105f49f10be2b221a016aac4a7060f0eaf5c56d -
Trigger Event:
push
-
Statement type:
File details
Details for the file tracegarden-0.1.7-py3-none-any.whl.
File metadata
- Download URL: tracegarden-0.1.7-py3-none-any.whl
- Upload date:
- Size: 48.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d59c3fe8d507cacfa09a617c6141bc4ee3b87a243d5816720e8ce3a360ebea92
|
|
| MD5 |
2f3ff9cf5dd15bf581425136b97a8e64
|
|
| BLAKE2b-256 |
d0bce54bf3f6c0cc7188fd5ec268fc454501e856a0c8459e5ee17373ff96e95a
|
Provenance
The following attestation bundles were made for tracegarden-0.1.7-py3-none-any.whl:
Publisher:
release.yml on peidrao/tracegarden
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tracegarden-0.1.7-py3-none-any.whl -
Subject digest:
d59c3fe8d507cacfa09a617c6141bc4ee3b87a243d5816720e8ce3a360ebea92 - Sigstore transparency entry: 1262900408
- Sigstore integration time:
-
Permalink:
peidrao/tracegarden@3105f49f10be2b221a016aac4a7060f0eaf5c56d -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/peidrao
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3105f49f10be2b221a016aac4a7060f0eaf5c56d -
Trigger Event:
push
-
Statement type: