Skip to main content

A debugging dashboard for FastAPI applications with real-time monitoring

Project description

FastAPI Radar

Python Version License: MIT

A debugging dashboard for FastAPI applications providing real-time request, database query, and exception monitoring.

Just one line to add powerful monitoring to your FastAPI app!

See it in Action

FastAPI Radar Dashboard Demo

Installation

pip install fastapi-radar

Or with your favorite package manager:

# Using poetry
poetry add fastapi-radar

# Using pipenv
pipenv install fastapi-radar

Note: The dashboard comes pre-built! No need to build anything - just install and use.

Quick Start

With SQL Database (Full Monitoring)

from fastapi import FastAPI
from fastapi_radar import Radar
from sqlalchemy import create_engine

app = FastAPI()
engine = create_engine("sqlite:///./app.db")

# Full monitoring with SQL query tracking
radar = Radar(app, db_engine=engine)
radar.create_tables()

# Your routes work unchanged
@app.get("/users")
async def get_users():
    return {"users": []}

Without SQL Database (HTTP & Exception Monitoring)

from fastapi import FastAPI
from fastapi_radar import Radar

app = FastAPI()

# Monitor HTTP requests and exceptions only
# Perfect for NoSQL databases, external APIs, or database-less apps
radar = Radar(app)  # No db_engine parameter needed!
radar.create_tables()

@app.get("/api/data")
async def get_data():
    # Your MongoDB, Redis, or external API calls here
    return {"data": []}

Access your dashboard at: http://localhost:8000/\_\_radar/

Features

  • Zero Configuration - Works with any FastAPI app (SQL database optional)
  • Request Monitoring - Complete HTTP request/response capture with timing
  • Database Monitoring - SQL query logging with execution times (when using SQLAlchemy)
  • Exception Tracking - Automatic exception capture with stack traces
  • Real-time Updates - Live dashboard updates as requests happen
  • Flexible Integration - Use with SQL, NoSQL, or no database at all

Configuration

radar = Radar(
    app,
    db_engine=engine,            # Optional: SQLAlchemy engine for SQL query monitoring
    dashboard_path="/__radar",   # Custom dashboard path (default: "/__radar")
    max_requests=1000,           # Max requests to store (default: 1000)
    retention_hours=24,          # Data retention period (default: 24)
    slow_query_threshold=100,    # Mark queries slower than this as slow (ms)
    capture_sql_bindings=True,   # Capture SQL query parameters
    exclude_paths=["/health"],   # Paths to exclude from monitoring
    theme="auto",                # Dashboard theme: "light", "dark", or "auto"
    db_path="/path/to/db",       # Custom path for radar.duckdb file (default: current directory)
)

Custom Database Location

By default, FastAPI Radar stores its monitoring data in a radar.duckdb file in your current working directory. You can customize this location using the db_path parameter:

# Store in a specific directory
radar = Radar(app, db_path="/var/data/monitoring")
# Creates: /var/data/monitoring/radar.duckdb

# Store with a specific filename
radar = Radar(app, db_path="/var/data/my_app_monitoring.duckdb")
# Creates: /var/data/my_app_monitoring.duckdb

# Use a relative path
radar = Radar(app, db_path="./data")
# Creates: ./data/radar.duckdb

If the specified path cannot be created, FastAPI Radar will fallback to using the current directory with a warning.

What Gets Captured?

  • ✅ HTTP requests and responses
  • ✅ Response times and performance metrics
  • ✅ SQL queries with execution times
  • ✅ Query parameters and bindings
  • ✅ Slow query detection
  • ✅ Exceptions with stack traces
  • ✅ Request/response bodies and headers

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

For contributors who want to modify the codebase:

  1. Clone the repository:
git clone https://github.com/doganarif/fastapi-radar.git
cd fastapi-radar
  1. Install development dependencies:
pip install -e ".[dev]"
  1. (Optional) If modifying the dashboard UI:
cd fastapi_radar/dashboard
npm install
npm run dev  # For development with hot reload
# or
npm run build  # To rebuild the production bundle
  1. Run the example apps:
# Example with SQL database
python example_app.py

# Example without SQL database (NoSQL/in-memory)
python example_nosql_app.py

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

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

fastapi_radar-0.1.8.tar.gz (278.8 kB view details)

Uploaded Source

Built Distribution

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

fastapi_radar-0.1.8-py3-none-any.whl (278.2 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_radar-0.1.8.tar.gz.

File metadata

  • Download URL: fastapi_radar-0.1.8.tar.gz
  • Upload date:
  • Size: 278.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.28

File hashes

Hashes for fastapi_radar-0.1.8.tar.gz
Algorithm Hash digest
SHA256 37ac3b29f4d9f0da30228b77b19477de297b5e2e8f7d74264fb9e0e18010b2e9
MD5 37ce7c126b3da80b6d6b447f0f47cd83
BLAKE2b-256 81975964a7cb8bac38ee809e23a672d0ce8f8749d84ed6aa620631bf3133e9e0

See more details on using hashes here.

File details

Details for the file fastapi_radar-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_radar-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1f065fff612906f70c4a35ebc63e58ebe1e8cb4a7eb0b2fea09276f6702724cc
MD5 cf4ff2e5d863d0b7258b03df21abe8de
BLAKE2b-256 354c459798e422403859c499a31efb5ed75299b02c1311907e65b18d05786627

See more details on using hashes here.

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