Skip to main content

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)

Release files for muffin-sentry 2.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for muffin-sentry 2.0.2
File Size Uploaded
muffin_sentry-2.0.2.tar.gz 4.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for muffin-sentry 2.0.2
File Interpreter ABI Platform
muffin_sentry-2.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 8.5 kB

Release files / muffin_sentry-2.0.2.tar.gz

Download URL muffin_sentry-2.0.2.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c32898f7f4502d77551ecc24f2a115edd7240d16759908d86e0799991ba997d8
BLAKE2b-256 checksum
How to use checksums
4a28fb7096ae3e021317a79ffd8792c0f2d993f7a6576b25781e9d367acc3c3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.12.3 Linux/6.11.0-1018-azure

Release files / muffin_sentry-2.0.2-py3-none-any.whl

Download URL muffin_sentry-2.0.2-py3-none-any.whl
Size 4.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0b26da087cb36a5b0b52146e8a26d82b6258e6bf8a9d10ad6c413a2d91d9c2c2
BLAKE2b-256 checksum
How to use checksums
8ea5312f153ae1ca658f774f580d5f030b874d6c7fcde2c701f1640bfe799a60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.12.3 Linux/6.11.0-1018-azure

Release history Release notifications | RSS feed

This release

2.0.2 This release

2 release files

2.0.0

2 release files

1.11.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

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