# Statsig | Sentry for Python

##### Currently in Beta

Feature flag change tracking and feature flag evaluation tracking is currently in open beta.

The [Statsig](https://www.statsig.com/.md) integration tracks feature flag evaluations produced by the Statsig Python Server SDK. These evaluations are held in memory and are sent to Sentry on error and trace events. **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.md).

## [Install](https://docs.sentry.io/.md#install)

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

```bash
pip install "sentry-sdk[statsig]"
```

## [Configure](https://docs.sentry.io/.md#configure)

Add `StatsigIntegration` to your `integrations` list:

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

sentry_sdk.init(
    dsn="https://examplePublicKey@o0.ingest.sentry.io/0",
    # 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.md) and [quickstart guide](https://docs.statsig.com/guides/first-feature.md).

## [Verify](https://docs.sentry.io/.md#verify)

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

```python
import sentry_sdk
from statsig.statsig_user import StatsigUser
from statsig import statsig

import time

statsig.initialize("server-secret-key")
while not statsig.is_initialized():
    time.sleep(0.2)

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.md) and confirm that your error event has recorded the feature flag "my-feature-gate", and its value is equal to `result`.

## [Supported Versions](https://docs.sentry.io/.md#supported-versions)

* statsig >= 0.55.3
* sentry-sdk >= 2.22.0
* python >= 3.7

##### Next Steps

* **Track feature flag evaluations in other parts of your codebase.** If needed, you can set up evaluation tracking for more than one SDK. [Read the docs](https://docs.sentry.io/platforms/python/feature-flags.md#enable-evaluation-tracking) to learn more.
* **Set up your change tracking webhook.** In order to take full advantage of the feature flag capabilities Sentry offers there is an additional setup step needed. Your feature flag provider needs to notify Sentry when a feature flag definition has changed. A Sentry webhook URL can be registered with your provider. Learn [how](https://docs.sentry.io/platforms/python/feature-flags.md#enable-change-tracking).
