From 8de1cbf7e14f15b8b0f05cf2ef95f879c7bb5b0e Mon Sep 17 00:00:00 2001
From: Andrew Liu <159852527+aliu39@users.noreply.github.com>
Date: Thu, 13 Feb 2025 15:51:31 -0800
Subject: [PATCH 1/5] feat(flags): document statsig python integration
---
docs/platforms/python/feature-flags/index.mdx | 1 +
.../python/integrations/statsig/index.mdx | 62 +++++++++++++++++++
2 files changed, 63 insertions(+)
create mode 100644 docs/platforms/python/integrations/statsig/index.mdx
diff --git a/docs/platforms/python/feature-flags/index.mdx b/docs/platforms/python/feature-flags/index.mdx
index 04f91b1f01e2d..333255a11a6b4 100644
--- a/docs/platforms/python/feature-flags/index.mdx
+++ b/docs/platforms/python/feature-flags/index.mdx
@@ -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
diff --git a/docs/platforms/python/integrations/statsig/index.mdx b/docs/platforms/python/integrations/statsig/index.mdx
new file mode 100644
index 0000000000000..2e7cd86cf517e
--- /dev/null
+++ b/docs/platforms/python/integrations/statsig/index.mdx
@@ -0,0 +1,62 @@
+---
+title: Statsig
+description: "Learn how to use Sentry with Statsig."
+---
+
+
+
+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 [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
+
+
From 886927d37e7a8639de14b379bc9a27f672d4b9af Mon Sep 17 00:00:00 2001
From: Andrew Liu <159852527+aliu39@users.noreply.github.com>
Date: Thu, 13 Feb 2025 15:53:52 -0800
Subject: [PATCH 2/5] Statsig feature gates
---
docs/platforms/python/integrations/statsig/index.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/platforms/python/integrations/statsig/index.mdx b/docs/platforms/python/integrations/statsig/index.mdx
index 2e7cd86cf517e..310ec7fa23775 100644
--- a/docs/platforms/python/integrations/statsig/index.mdx
+++ b/docs/platforms/python/integrations/statsig/index.mdx
@@ -5,7 +5,7 @@ description: "Learn how to use Sentry with Statsig."
-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 [feature gates](https://docs.statsig.com/feature-flags/working-with/).
+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
From bd93541a88e2c5cc7177377c0a24870250af658c Mon Sep 17 00:00:00 2001
From: Andrew Liu <159852527+aliu39@users.noreply.github.com>
Date: Fri, 14 Feb 2025 11:10:24 -0800
Subject: [PATCH 3/5] Address todos
---
docs/platforms/python/integrations/statsig/index.mdx | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/docs/platforms/python/integrations/statsig/index.mdx b/docs/platforms/python/integrations/statsig/index.mdx
index 310ec7fa23775..dd85fa8074475 100644
--- a/docs/platforms/python/integrations/statsig/index.mdx
+++ b/docs/platforms/python/integrations/statsig/index.mdx
@@ -43,8 +43,11 @@ import sentry_sdk
from statsig.statsig_user import StatsigUser
from statsig import statsig
+import time
+
statsig.initialize("server-secret-key")
-# TODO: wait for initialization to complete?
+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!"))
@@ -56,7 +59,7 @@ event has recorded the feature flag "my-feature-gate", and its value is equal to
## Supported Versions
- statsig >= 0.55.3
-- sentry-sdk >= TODO:
+- sentry-sdk >= 2.22.0
- python >= 3.7
From 8c9e73cc3fcb2b13b175465bbe693e6dff45dcfb Mon Sep 17 00:00:00 2001
From: Andrew Liu <159852527+aliu39@users.noreply.github.com>
Date: Fri, 14 Feb 2025 23:18:02 -0800
Subject: [PATCH 4/5] Add to integrations table
---
docs/platforms/python/integrations/index.mdx | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/platforms/python/integrations/index.mdx b/docs/platforms/python/integrations/index.mdx
index 7618d9e63acec..911070cb6fb22 100644
--- a/docs/platforms/python/integrations/index.mdx
+++ b/docs/platforms/python/integrations/index.mdx
@@ -65,6 +65,7 @@ The Sentry SDK uses integrations to hook into the functionality of popular libra
| ----------------------------------------------------------------------------------------------------------------------- | :--------------: |
| | |
| | |
+| | |
| | |
### Cloud Computing
From 120719ba69a4e61580693c70df8e375b46ab534b Mon Sep 17 00:00:00 2001
From: Anton Pirker
Date: Mon, 17 Feb 2025 14:52:21 +0100
Subject: [PATCH 5/5] Fixed links
---
docs/platforms/python/integrations/index.mdx | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/platforms/python/integrations/index.mdx b/docs/platforms/python/integrations/index.mdx
index 911070cb6fb22..5c95936072b49 100644
--- a/docs/platforms/python/integrations/index.mdx
+++ b/docs/platforms/python/integrations/index.mdx
@@ -61,12 +61,12 @@ The Sentry SDK uses integrations to hook into the functionality of popular libra
### Feature Flags
-| | **Auto-enabled** |
-| ----------------------------------------------------------------------------------------------------------------------- | :--------------: |
-| | |
-| | |
-| | |
-| | |
+| | **Auto-enabled** |
+| ------------------------------------------------------------------------------------------------------------------ | :--------------: |
+| | |
+| | |
+| | |
+| | |
### Cloud Computing