Skip to content

feat(flags): document statsig python integration #12722

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 6 commits into from
Feb 17, 2025
Merged
Show file tree
Hide file tree
Changes from 2 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
1 change: 1 addition & 0 deletions docs/platforms/python/feature-flags/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Evaluation tracking typically requires enabling an SDK integration. Integrations
- [Generic (API)](/platforms/python/feature-flags/#generic-api)
- [LaunchDarkly](/platforms/python/integrations/launchdarkly/)
- [OpenFeature](/platforms/python/integrations/openfeature/)
- [Statsig](/platforms/python/integrations/statsig/)
- [Unleash](/platforms/python/integrations/unleash/)

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

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

The [Statsig](https://www.statsig.com/) integration tracks feature flag evaluations produced by the Statsig Python Server 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 from Statsig's `check_gate` function.** Learn more about [Statsig feature gates](https://docs.statsig.com/feature-flags/working-with/).

## Install

Install `sentry-sdk` from PyPI with the `statsig` extra.

```bash
pip install --upgrade 'sentry-sdk[statsig]'
```

## Configure

Add `StatsigIntegration` to your `integrations` list:

```python
import sentry_sdk
from sentry_sdk.integrations.statsig import StatsigIntegration

sentry_sdk.init(
dsn="___PUBLIC_DSN___",
# Add data like request headers and IP for users, if applicable;
# see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info
send_default_pii=True,
integrations=[StatsigIntegration()],
)
```

For more information on how to use Statsig, read Statsig's [Python reference](https://docs.statsig.com/server/pythonSDK) and [quickstart guide](https://docs.statsig.com/guides/first-feature).

## Verify

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

```python {tabTitle: Python, using is_enabled}
import sentry_sdk
from statsig.statsig_user import StatsigUser
from statsig import statsig

statsig.initialize("server-secret-key")
# TODO: wait for initialization to complete?

result = statsig.check_gate(StatsigUser("my-user-id"), "my-feature-gate")
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 "my-feature-gate", and its value is equal to `result`.

## Supported Versions

- statsig >= 0.55.3
- sentry-sdk >= TODO:
- python >= 3.7

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