Skip to content

[Python] Added dramatiq integration getting started #11015

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions docs/platforms/python/integrations/dramatiq/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: Dramatiq
description: "Learn how to import and use the Dramatiq integration."
---

The Dramatiq integration adds support for the
[Dramatiq](https://dramatiq.io/) background tasks library.

<Alert level="info">
This is the successor of the original `DramatiqIntegration` that can be found here: https://github.com/jacobsvante/sentry-dramatiq

The original maintainer has [donated the integration to Sentry](https://github.com/getsentry/sentry-python/issues/3387), so we can take over maintenance.
</Alert>

## Install

To get started, install `sentry-sdk` from PyPI.

```bash
pip install --upgrade sentry-sdk
```

## Configure

Add `DramatiqIntegration()` to your `integrations` list:

<SignInNote />

In addition to capturing errors, you can monitor interactions between multiple services or applications by [enabling tracing](/concepts/key-terms/tracing/). You can also collect and analyze performance profiles from real users with [profiling](/product/explore/profiling/).

Select which Sentry features you'd like to install in addition to Error Monitoring to get the corresponding installation and configuration instructions below.

<OnboardingOptionButtons
options={["error-monitoring", "performance", "profiling"]}
/>

```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}}
import sentry_sdk
from sentry_sdk.integrations.dramatiq import DramatiqIntegration

sentry_sdk.init(
dsn="___PUBLIC_DSN___",
# Set traces_sample_rate to 1.0 to capture 100%
# of transactions for tracing.
traces_sample_rate=1.0,
# Set profiles_sample_rate to 1.0 to profile 100%
# of sampled transactions.
# We recommend adjusting this value in production.
profiles_sample_rate=1.0,
integrations=[
DramatiqIntegration(),
],
)
```

## Verify

Trigger an error in your code to verify that the integration is sending events to Sentry.

```python
import dramatiq

import sentry_sdk
sentry_sdk.init(...) # same as above

@dramatiq.actor(max_retries=0)
def dummy_actor(x, y):
return x / y

dummy_actor.send(5, 0)
```

Running this will create an error event (`ZeroDivisionError`) that you should be able to see in [sentry.io](https://sentry.io).

## Supported Versions

- Dramatiq: 1.13+
- Python: 3.6+

<Include name="python-use-older-sdk-for-legacy-support.mdx" />
22 changes: 11 additions & 11 deletions docs/platforms/python/integrations/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,17 @@ The Sentry SDK uses integrations to hook into the functionality of popular libra
| <LinkWithPlatformIcon platform="openai" label="OpenAI" url="/platforms/python/integrations/openai" /> | ✓ |

### Data Processing

| | **Auto-enabled** |
| ---------------------------------------------------------------------------------------------------------------------- | :--------------: |
| <LinkWithPlatformIcon platform="python.airflow" label="Apache Airflow" url="/platforms/python/integrations/airflow" /> | |
| <LinkWithPlatformIcon platform="python.beam" label="Apache Beam" url="/platforms/python/integrations/beam" /> | |
| <LinkWithPlatformIcon platform="python.spark" label="Apache Spark" url="/platforms/python/integrations/spark" /> | |
| <LinkWithPlatformIcon platform="python.arq" label="ARQ" url="/platforms/python/integrations/arq" /> | ✓ |
| <LinkWithPlatformIcon platform="python.celery" label="Celery" url="/platforms/python/integrations/celery" /> | |
| <LinkWithPlatformIcon platform="python.huey" label="huey" url="/platforms/python/integrations/huey" /> | ✓ |
| <LinkWithPlatformIcon platform="python.rq" label="RQ" url="/platforms/python/integrations/rq" /> | ✓ |
| <LinkWithPlatformIcon platform="python.ray" label="Ray" url="/platforms/python/integrations/ray" /> | |
| **Auto-enabled** |
| ------------------------------------------------------------------------------------------------------------------------ | :--------------: |
| <LinkWithPlatformIcon platform="python.airflow" label="Apache Airflow" url="/platforms/python/integrations/airflow" /> | |
| <LinkWithPlatformIcon platform="python.beam" label="Apache Beam" url="/platforms/python/integrations/beam" /> | |
| <LinkWithPlatformIcon platform="python.spark" label="Apache Spark" url="/platforms/python/integrations/spark" /> | |
| <LinkWithPlatformIcon platform="python.arq" label="ARQ" url="/platforms/python/integrations/arq" /> | |
| <LinkWithPlatformIcon platform="python.celery" label="Celery" url="/platforms/python/integrations/celery" /> | ✓ |
| <LinkWithPlatformIcon platform="python.dramatiq" label="Dramatiq" url="/platforms/python/integrations/dramatiq" /> | |
| <LinkWithPlatformIcon platform="python.huey" label="huey" url="/platforms/python/integrations/huey" /> | ✓ |
| <LinkWithPlatformIcon platform="python.rq" label="RQ" url="/platforms/python/integrations/rq" /> | ✓ |
| <LinkWithPlatformIcon platform="python.ray" label="Ray" url="/platforms/python/integrations/ray" /> | |

### Cloud Computing

Expand Down
Loading