Skip to content
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

feat(flags): document python UnleashIntegration #12216

Merged
merged 15 commits into from
Jan 7, 2025
1 change: 1 addition & 0 deletions docs/platforms/python/integrations/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ The Sentry SDK uses integrations to hook into the functionality of popular libra
| ----------------------------------------------------------------------------------------------------------------------- | :--------------: |
| <LinkWithPlatformIcon platform="python" label="LaunchDarkly" url="/platforms/python/integrations/launchdarkly" /> | |
| <LinkWithPlatformIcon platform="python" label="OpenFeature" url="/platforms/python/integrations/openfeature" /> | |
| <LinkWithPlatformIcon platform="python" label="Unleash" url="/platforms/python/integrations/unleash" /> | |

### Cloud Computing

Expand Down
74 changes: 74 additions & 0 deletions docs/platforms/python/integrations/unleash/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
title: Unleash
description: "Learn how to use Sentry with Unleash."
---

<PlatformContent includePath="feature-flags/prerelease-alert" />

The [Unleash](https://www.getunleash.io/) integration tracks feature flag evaluations produced by the Unleash SDK. These evaluations are held in memory and sent to Sentry for review and analysis if an error occurs. **At the moment, we only support boolean flag evaluations.**

## Install

Install `sentry-sdk` (>=TODO:) and `UnleashClient` (>=6.0.1) from PyPI.
aliu39 marked this conversation as resolved.
Show resolved Hide resolved

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

## Configure

Add `UnleashIntegration` to your `integrations` list:

```python
import sentry_sdk
import os

from sentry_sdk.integrations.unleash import UnleashIntegration
from UnleashClient import UnleashClient

unleash_client = UnleashClient(
url="<Unleash server URL>/api/", # "http://localhost:4242/api/" if you are self-hosting Unleash.
app_name="my-app", # Identifies your app in the Unleash UI.
custom_headers={
# See https://docs.getunleash.io/how-to/how-to-create-api-tokens
"Authorization": os.environ["UNLEASH_CLIENT_API_TOKEN"]
}
)

unleash_integration = UnleashIntegration(unleash_client)
cmanallen marked this conversation as resolved.
Show resolved Hide resolved

sentry_sdk.init(
dsn="___PUBLIC_DSN___",
integrations=[unleash_integration],
antonpirker marked this conversation as resolved.
Show resolved Hide resolved
)
```

For more information on how to use Unleash, read Unleash's [Python reference](https://docs.getunleash.io/reference/sdks/python) and [quickstart guide](https://docs.getunleash.io/quickstart).

## Verify

Test the integration by evaluating a feature flag using your Unleash SDK before capturing an exception.

```python {tabTitle: Python, using is_enabled}
import sentry_sdk

# Re-use `unleash_client` from the previous step.
test_flag_enabled = unleash_client.is_enabled("test-flag")

sentry_sdk.capture_exception(Exception("Something went wrong!"))
```

```python {tabTitle: Python, using get_variant}
import sentry_sdk

# Re-use `unleash_client` from the previous step.
test_flag_variant = unleash_client.get_variant("test-flag")
test_flag_enabled = test_flag_variant["enabled"]

sentry_sdk.capture_exception(Exception("Something went wrong!"))
```

Visit the [Sentry website](https://sentry.io/issues/) and confirm that your error
event has recorded the feature flag "test-flag", and its value is equal to `test_flag_enabled`.

<PlatformContent includePath="feature-flags/next-steps" />
Loading