Skip to main content

Developer-first visual backend devtools for Django, Flask, and FastAPI

Project description

TraceGarden

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

Request list Request detail

OpenTelemetry

from tracegarden.otel.setup import setup_otel

setup_otel(
    service_name="my-api",
    also_export_to_tracegarden=True,
)

What gets recorded

See docs/WHAT_IT_RECORDS.md.

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

tracegarden-0.1.7.tar.gz (322.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tracegarden-0.1.7-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

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

Hashes for tracegarden-0.1.7.tar.gz
Algorithm Hash digest
SHA256 7f8db6f6d2aa2eca5edd8f9f62a5c54d61d60fa8375cbc13e940fc9d75c2e22a
MD5 f62678d07a1bf7c6159367b36c7a9c96
BLAKE2b-256 6636f186c5b33a3e16550412f2de84360c22085685e9f5afbc57821eacb19dec

See more details on using hashes here.

Provenance

The following attestation bundles were made for tracegarden-0.1.7.tar.gz:

Publisher: release.yml on peidrao/tracegarden

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for tracegarden-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d59c3fe8d507cacfa09a617c6141bc4ee3b87a243d5816720e8ce3a360ebea92
MD5 2f3ff9cf5dd15bf581425136b97a8e64
BLAKE2b-256 d0bce54bf3f6c0cc7188fd5ec268fc454501e856a0c8459e5ee17373ff96e95a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tracegarden-0.1.7-py3-none-any.whl:

Publisher: release.yml on peidrao/tracegarden

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page