Skip to main content

Sentry Integration for Muffin framework

Project description

Muffin-Sentry

Muffin-SentrySentry integration for the Muffin ASGI framework.

Tests Status PyPI Version Python Versions License


Requirements

  • Python >= 3.10
  • Muffin >= 1.0
  • sentry-sdk >= 1.40

Installation

Install using pip:

pip install muffin-sentry

Usage

from muffin import Application
import muffin_sentry

app = Application("example", SENTRY_DSN="https://<public>@sentry.io/<project_id>")

# Initialize the plugin manually (optional if config is provided)
sentry = muffin_sentry.Plugin()
sentry.setup(app)

# Add custom processor (must be sync)
@sentry.processor
def enrich_event(event, hint, request):
    if user := getattr(request, "user", None):
        event["user"] = {"id": str(user.id)}
    return event

# Raise unhandled exception
@app.route("/fail")
async def fail(request):
    raise RuntimeError("Boom")

# Manually capture a message
@app.route("/capture")
async def capture(request):
    sentry.capture_message("Manual log")
    return "OK"

# Update scope manually
@app.route("/scope")
async def tag_scope(request):
    sentry.scope.set_tag("section", "test")
    sentry.capture_exception(Exception("With scope tag"))
    return "OK"

Configuration Options

You can configure the plugin in two ways:

  1. Via Muffin application config (recommended):
app = Application(
    "app",
    SENTRY_DSN="https://...",
    SENTRY_SDK_OPTIONS={"traces_sample_rate": 0.5},
)
  1. Or by calling .setup() manually:
sentry.setup(app, dsn="https://...", sdk_options={"traces_sample_rate": 0.5})

Available options:

Name Default value Description
dsn "" Sentry DSN for your project
sdk_options {} Dict of options for sentry-sdk (e.g., traces_sample_rate)
ignore_errors [ResponseError, ResponseRedirect] Exception classes to ignore

Notes

  • You can access the current Sentry scope using plugin.scope.
  • Event processors must be synchronous functions.
  • Sentry sessions and transactions are handled automatically inside the plugin middleware.

Bug Tracker

Found a bug or have a feature request? Please open an issue at: https://github.com/klen/muffin-sentry/issues

Contributing

Development happens at: https://github.com/klen/muffin-sentry Pull requests and suggestions are welcome!

License

Licensed under the MIT license.

Credits

  • Created by klen (Kirill Klenov)

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

muffin_sentry-2.0.2.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

muffin_sentry-2.0.2-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file muffin_sentry-2.0.2.tar.gz.

File metadata

  • Download URL: muffin_sentry-2.0.2.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.3 Linux/6.11.0-1018-azure

File hashes

Hashes for muffin_sentry-2.0.2.tar.gz
Algorithm Hash digest
SHA256 c32898f7f4502d77551ecc24f2a115edd7240d16759908d86e0799991ba997d8
MD5 d9728bfc790325e9f5cb2629742fc85e
BLAKE2b-256 4a28fb7096ae3e021317a79ffd8792c0f2d993f7a6576b25781e9d367acc3c3d

See more details on using hashes here.

File details

Details for the file muffin_sentry-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: muffin_sentry-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.3 Linux/6.11.0-1018-azure

File hashes

Hashes for muffin_sentry-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0b26da087cb36a5b0b52146e8a26d82b6258e6bf8a9d10ad6c413a2d91d9c2c2
MD5 461f8c9c2efba4b4c3241ef8c945a725
BLAKE2b-256 8ea5312f153ae1ca658f774f580d5f030b874d6c7fcde2c701f1640bfe799a60

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page