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.5.tar.gz (321.8 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.5-py3-none-any.whl (48.1 kB view details)

Uploaded Python 3

File details

Details for the file tracegarden-0.1.5.tar.gz.

File metadata

  • Download URL: tracegarden-0.1.5.tar.gz
  • Upload date:
  • Size: 321.8 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.5.tar.gz
Algorithm Hash digest
SHA256 9158baa055d8f57af659079cc5bba7f68305c8e9c52d4104a28772fc0b7dc17e
MD5 14b1e3dd14b374f3828e49279b1ac14d
BLAKE2b-256 b9a95add2246e8e49bb3f9d026515987f42c5f2f2e3fcec16bec488460e2e92b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tracegarden-0.1.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: tracegarden-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 48.1 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3bfc058574c7b4a1738d5e50e8a90681fa10259f4222c3b373b19d0b2d08071e
MD5 92158231e7705a90c095df94ac658414
BLAKE2b-256 ca96c801a8c60fb10a87303f3dd4bad00e26ce2547965b860b7303cca6ca3054

See more details on using hashes here.

Provenance

The following attestation bundles were made for tracegarden-0.1.5-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