Sentry Integration for Muffin framework
Project description
Muffin-Sentry
Muffin-Sentry — Sentry integration for the Muffin ASGI framework.
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:
- Via Muffin application config (recommended):
app = Application(
"app",
SENTRY_DSN="https://...",
SENTRY_SDK_OPTIONS={"traces_sample_rate": 0.5},
)
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c32898f7f4502d77551ecc24f2a115edd7240d16759908d86e0799991ba997d8
|
|
| MD5 |
d9728bfc790325e9f5cb2629742fc85e
|
|
| BLAKE2b-256 |
4a28fb7096ae3e021317a79ffd8792c0f2d993f7a6576b25781e9d367acc3c3d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b26da087cb36a5b0b52146e8a26d82b6258e6bf8a9d10ad6c413a2d91d9c2c2
|
|
| MD5 |
461f8c9c2efba4b4c3241ef8c945a725
|
|
| BLAKE2b-256 |
8ea5312f153ae1ca658f774f580d5f030b874d6c7fcde2c701f1640bfe799a60
|