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.6.tar.gz (322.2 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.6-py3-none-any.whl (48.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tracegarden-0.1.6.tar.gz
  • Upload date:
  • Size: 322.2 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.6.tar.gz
Algorithm Hash digest
SHA256 3ed56747fb7b34e99b81889207adfebbddb131824e044dad6ab6ef2e5667002d
MD5 4c879fd8a2fea8d86509b7a29f5ef7b3
BLAKE2b-256 855e3c5ddde7f0cee12a364b68d0dc1cc43afabca915904573feb1fb3de2582f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tracegarden-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 48.6 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f819f491a294fd943c73627cc593cec835f8636bda699de74eaba27f4d9eed19
MD5 54349e9fbdbd435f21db1e095a9d7a2f
BLAKE2b-256 bc997cd81b6e49ae003aa984e1b79426ae3efb7f770f933ea59a849c6923e971

See more details on using hashes here.

Provenance

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