Skip to main content

fastapi-inspector

Structured logging and observability middleware for FastAPI applications.

Test coverage pypi package python PyPI Downloads

Documentation · Changelog · Contributing


Features

  • Zero-boilerplate middleware — one line to log every request and response
  • Structured events — typed LogEvent objects with method, path, status code, latency, and more
  • Pluggable storage — in-memory, JSON file, JSON Lines, or SQLite backends
  • Filter pipeline — drop health-check noise, log only errors, or set a minimum latency threshold
  • Built-in dashboard — mount an event-inspector UI at any path in your app
  • Multiple formatters — plain-text or JSON output
  • Python 3.10–3.14 with full CI coverage across all versions

Install

pip install fastapi-inspector

Quick start

Basic logging

from fastapi import FastAPI
from fastapi_inspector import ObserverConfig, ObserverMiddleware

app = FastAPI()
app.add_middleware(ObserverMiddleware, config=ObserverConfig())

@app.get("/items")
async def list_items():
    return {"items": ["alpha", "beta", "gamma"]}

Every request is now logged to the console with method, path, status code, and latency.

Persist events and open the dashboard

from fastapi import FastAPI
from fastapi_inspector import ObserverConfig, ObserverMiddleware, build_dashboard_app
from fastapi_inspector.storage import InMemoryEventStore

app = FastAPI()
store = InMemoryEventStore()

app.add_middleware(ObserverMiddleware, config=ObserverConfig(), storage=store)
app.mount("/dashboard", build_dashboard_app(store, title="Observer Dashboard"))

Open http://localhost:8000/dashboard to browse and inspect logged events.

Filter out noise

from fastapi_inspector import ObserverConfig, ObserverMiddleware, only_errors, min_duration_ms

app.add_middleware(
    ObserverMiddleware,
    config=ObserverConfig(handlers=["console"], log_format="json"),
    event_filters=[
        only_errors,           # log 4xx/5xx responses only
        min_duration_ms(50.0), # ignore fast responses
    ],
)

See the examples/ directory for more patterns including SQLite storage and custom filters.


Storage backends

Backend Class Use case
In-memory InMemoryEventStore Development, testing
JSON file JsonFileEventStore Simple persistence
JSON Lines JsonLinesEventStore Append-only log files
SQLite SQLiteEventStore Queryable local storage

Python compatibility

  • Supported versions: 3.10, 3.11, 3.12, 3.13, 3.14
  • Enforced in CI with a tox matrix across all versions

Development

Install all dependencies:

pip install -e ".[test,docs,dev]"
pre-commit install

Run tests:

pytest -q
pytest -q --cov=fastapi_inspector --cov-report=term-missing   # with coverage
tox                                                           # full version matrix

Build and preview docs:

mkdocs serve        # http://127.0.0.1:8000
mkdocs build --strict

See CONTRIBUTING.md for the full contribution guide.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_inspector-1.0.1.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

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

fastapi_inspector-1.0.1-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_inspector-1.0.1.tar.gz.

File metadata

  • Download URL: fastapi_inspector-1.0.1.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fastapi_inspector-1.0.1.tar.gz
Algorithm Hash digest
SHA256 4ddebc37994c669fa0f8a3804268cd88295464cc73ac0948b020d099ec7f3e8b
MD5 7c8d76d692bc5a1115b42443b1bfc23d
BLAKE2b-256 07509905ec66f188fb0f8e2c1f87503e63a3931437436559e9022ada0b8c5c3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_inspector-1.0.1.tar.gz:

Publisher: publish.yml on MehrazRumman/fastapi-observer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastapi_inspector-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_inspector-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 54996503886488e68ac9bffcd7c0ac3cef04b3170a811896e382ea03044c1578
MD5 cef0d2876bb6fd9eee110b904f397e24
BLAKE2b-256 f89f5070130880358e41ceea5bdcb25e955df4ff835c53928eb14bfd21e160a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_inspector-1.0.1-py3-none-any.whl:

Publisher: publish.yml on MehrazRumman/fastapi-observer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

1.0.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page