Skip to main content

Lightweight performance profiler for FastAPI applications

Project description

FastAPI Profiler Lite

FastAPI Profiler Lite Logo

PyPI version License GitHub stars CI Status Release Status

A lightweight, zero-configuration performance profiler for FastAPI applications. Monitor your API performance in real-time without external dependencies.

Dashboard Demo

Why FastAPI Profiler?

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

Installation

pip install fastapi-profiler-lite

For more installation options, see the Installation Guide.

Quick Start

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.

Features

  • 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

Technical Details

  • 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.

Running Examples

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

Database Instrumentation Example

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.

Documentation

License

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

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_profiler_lite-0.3.3.tar.gz (43.6 kB view details)

Uploaded Source

Built Distribution

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

fastapi_profiler_lite-0.3.3-py3-none-any.whl (47.6 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_profiler_lite-0.3.3.tar.gz.

File metadata

  • Download URL: fastapi_profiler_lite-0.3.3.tar.gz
  • Upload date:
  • Size: 43.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.17 Linux/6.11.0-1015-azure

File hashes

Hashes for fastapi_profiler_lite-0.3.3.tar.gz
Algorithm Hash digest
SHA256 28c94a1b59a98fdd50712a464a9cd02b128c0a1f31ce73e1a28e4c62867c5d90
MD5 97ed975140044b89da60ddbf41ff4425
BLAKE2b-256 2d898f61b832df05dc2c80c4c63fae7e30b8488923d93056b1012fdf71a723cb

See more details on using hashes here.

File details

Details for the file fastapi_profiler_lite-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_profiler_lite-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 385c53c5a5b45108a8b69bea71d90b59c62f7c07d19df8239f0423cda9d461f9
MD5 d00f167d29a6e981645111daefbec0da
BLAKE2b-256 20d79039cd8b7a3d3aac0488d9acf9d00a80f55cbb6121edb54780b9a0b1bf7d

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