Skip to main content

A powerful and easy-to-use logging and tracing library for FastAPI applications.

Project description

SuperTracer

SuperTracer is a powerful and easy-to-use logging and tracing library for FastAPI applications. It provides a real-time dashboard to monitor requests, analyze performance, and debug issues with ease.

Dashboard Preview

Features

  • Real-time Dashboard: Monitor incoming requests and logs as they happen.
  • Comprehensive Logging: Captures request/response bodies, headers, status codes, latency, and more.
  • Multiple Storage Backends: Support for In-Memory, SQLite, and PostgreSQL.
  • Advanced Filtering: Filter logs by method, status code, latency, date, and content.
  • Metrics & Analytics: Visualize request rates, error rates, and latency distributions.
  • Secure: Built-in authentication for the dashboard and API.
  • Easy Configuration: Configure via JSON file or Python objects.

Installation

pip install supertracer

Quick Start

Integrate SuperTracer into your FastAPI application in just a few lines of code:

from fastapi import FastAPI
from supertracer import SuperTracer

app = FastAPI()

# Initialize SuperTracer (defaults to In-Memory storage)
tracer = SuperTracer(app)

@app.get("/")
def read_root():
    return {"Hello": "World"}

Now run your application and visit /supertracer/logs to see the dashboard!

Storage Backends

SuperTracer supports different storage backends. By default, it uses an in-memory connector. To use a persistent database, pass the connector instance:

SQLite

from supertracer import SuperTracer, SQLiteConnector

# ... app setup ...

connector = SQLiteConnector("requests.db")
tracer = SuperTracer(app, connector=connector)

PostgreSQL

from supertracer import SuperTracer, PostgreSQLConnector

# ... app setup ...

connector = PostgreSQLConnector(
    host="localhost",
    port=5432,
    database="supertracer_db",
    user="your_username",
    password="your_password"
    sslmode="prefer"
)
tracer = SuperTracer(app, connector=connector)

Configuration

SuperTracer is highly configurable. You can use a supertracer.config.json file in your project root or pass options programmatically.

Using supertracer.config.json

Create a file named supertracer.config.json to configure logging, metrics, auth, and more:

{
  "logger_options": {
    "level": 20,
    "format": "%(message)s"
  },
  "metrics_options": {
    "enabled": true,
    "history_limit": 1000
  },
  "capture_options": {
    "capture_request_body": true,
    "max_request_body_size": 10240,
    "capture_response_body": true
  }
}

Programmatic Configuration

You can also pass options directly:

from supertracer import SuperTracer, SupertracerOptions, LoggerOptions

options = SupertracerOptions(
    logger_options=LoggerOptions(level=10), # DEBUG
)

tracer = SuperTracer(app, options=options)

UI Overview

Dashboard

Dashboard

Logs View

Logs View

Request Details

Request Details

Documentation

For detailed documentation on all available options, connectors, and advanced usage, please refer to the docs folder.

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

supertracer-0.1.2.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

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

supertracer-0.1.2-py3-none-any.whl (46.5 kB view details)

Uploaded Python 3

File details

Details for the file supertracer-0.1.2.tar.gz.

File metadata

  • Download URL: supertracer-0.1.2.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for supertracer-0.1.2.tar.gz
Algorithm Hash digest
SHA256 896ac234131c537ecb5a96b774ae192f5d76f71631bb6169951f29171d14c627
MD5 27468fcfc6b12d14c85865a0ee37de64
BLAKE2b-256 7ae6d2aa24c2e0abe7756efd635b8ecba3d3a63d6fe3f4b7966c92b0f3317a18

See more details on using hashes here.

Provenance

The following attestation bundles were made for supertracer-0.1.2.tar.gz:

Publisher: publish.yml on Tomas-Santana/supertracer

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

File details

Details for the file supertracer-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: supertracer-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for supertracer-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b18b0ec10016150b79de607391865c1ac30fb084c8cc9e5687316fe1779ad0d9
MD5 e87fa3d58775a3731098eefac43c5982
BLAKE2b-256 970a8d74c6e3a9601243c6f06a535805e8159c6c8d932da8cb17c89e574152fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for supertracer-0.1.2-py3-none-any.whl:

Publisher: publish.yml on Tomas-Santana/supertracer

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