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)

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

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

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.

Release history Release notifications | RSS feed

This release

2.0.2 This release

2 files

2.0.0

2 files

1.11.0

2 files

1.10.0

2 files

1.9.0

2 files

1.8.1

2 files

1.8.0

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.5.8

2 files

0.5.7

2 files

0.5.6

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

0.0.0

Supported by

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