A lightweight, zero-configuration performance profiler for FastAPI applications. Monitor your API performance in real-time without external dependencies.
Monitoring API performance shouldn't require complex setups or external services. FastAPI Profiler gives you instant visibility into your application's performance with just one line of code.
- Instant insights - See which endpoints are slow without complex instrumentation
- Zero configuration - Works out of the box with sensible defaults
- Rust-powered statistics - High-performance stats calculation using Rust
- Developer-friendly - Designed for both development and lightweight production use
pip install fastapi-profiler-lite
For more installation options, see the Installation Guide.
from fastapi import FastAPI
from fastapi_profiler import Profiler
app = FastAPI()
# Add the profiler with just one line
Profiler(app)
@app.get("/")
async def read_root():
return {"Hello": "World"}
That's it! Visit /profiler
to see the performance dashboard.
- One-line integration - Add to any FastAPI app with minimal code
- Real-time dashboard - Live updates with automatic refresh
- Response time tracking - Measure execution time of each request
- Endpoint analysis - Identify your slowest and most used endpoints
- Request filtering - Search and sort through captured requests
- Visual metrics - Charts for response times and request distribution
- Database monitoring - Tracking of SQLAlchemy queries
- Minimal overhead - Designed to have low performance impact
-
Rust Core: Statistics calculations are powered by a Rust extension using PyO3 for improved performance. Benchmarks comparing to NumPy will be published soon. Pre-built wheels are provided for all major platforms, but if you encounter any issues, please open a GitHub issue.
-
UI Framework: The dashboard uses Tabler.io, a premium and open-source admin dashboard template, providing a clean and modern interface.
-
Database Instrumentation: Track database queries with SQLAlchemy integration. Manually instrument your SQLAlchemy engines to see detailed query performance data.
The repository includes several examples to demonstrate different features:
# Basic example with simple endpoints
python example.py
# Example with SQLAlchemy database instrumentation
python examples/sqlalchemy_demo.py
# Example with multiple database engines
python examples/multi_db_demo.py
# Real-time continuous monitoring demo
python examples/realtime_demo.py
# Stress test with high load
python examples/stress_test.py
To manually instrument database engines:
from fastapi import FastAPI
from sqlalchemy import create_engine
from fastapi_profiler import Profiler
from fastapi_profiler.instrumentations import SQLAlchemyInstrumentation
app = FastAPI()
# Create SQLAlchemy engines
primary_db = create_engine("sqlite:///./primary.db")
analytics_db = create_engine("sqlite:///./analytics.db")
# Initialize profiler
profiler = Profiler(app)
# Manually instrument each database engine
SQLAlchemyInstrumentation.instrument(primary_db)
SQLAlchemyInstrumentation.instrument(analytics_db)
Visit /profiler
to see the dashboard with database query performance data.
This project is licensed under the MIT License - see the LICENSE file for details.