From 75f3ac34d3072c7cc1411e360c177f079fe257c2 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Wed, 29 Jan 2025 10:06:16 +0100 Subject: [PATCH] feat(python): Add `send_default_pii=True` to snippets (#12473) See https://github.com/getsentry/team-sdks/issues/121 --------- Co-authored-by: Alex Krawiec --- .../python/configuration/options.mdx | 2 +- .../python/data-management/data-collected.mdx | 20 +++++++++----- docs/platforms/python/index.mdx | 5 +++- .../python/integrations/asgi/index.mdx | 5 +++- .../python/integrations/asyncio/index.mdx | 5 +++- .../manual-instrumentation/index.mdx | 5 +++- .../python/integrations/beam/index.mdx | 5 +++- .../python/integrations/celery/crons.mdx | 5 +++- .../python/integrations/celery/index.mdx | 10 +++++-- .../cloudresourcecontext/index.mdx | 5 +++- .../python/integrations/django/index.mdx | 5 +++- .../python/integrations/dramatiq/index.mdx | 3 +++ .../python/integrations/falcon/index.mdx | 2 +- .../integrations/gcp-functions/index.mdx | 5 +++- .../integrations/gnu_backtrace/index.mdx | 3 +++ .../python/integrations/gql/index.mdx | 2 ++ .../python/integrations/graphene/index.mdx | 2 ++ .../python/integrations/grpc/index.mdx | 5 +++- .../integrations/huggingface_hub/index.mdx | 2 ++ .../python/integrations/langchain/index.mdx | 9 ++++--- .../integrations/launchdarkly/index.mdx | 3 +++ .../python/integrations/litestar/index.mdx | 5 +++- .../python/integrations/logging/index.mdx | 5 +++- .../python/integrations/loguru/index.mdx | 3 +++ .../python/integrations/openai/index.mdx | 4 ++- .../python/integrations/openfeature/index.mdx | 3 +++ .../python/integrations/pure_eval/index.mdx | 3 +++ .../python/integrations/ray/index.mdx | 5 +++- .../python/integrations/rq/index.mdx | 26 ++++++++++++++----- .../integrations/rust_tracing/index.mdx | 5 +++- .../python/integrations/sanic/index.mdx | 5 +++- .../python/integrations/serverless/index.mdx | 5 +++- .../python/integrations/socket/index.mdx | 5 +++- .../python/integrations/spark/index.mdx | 10 +++++-- .../python/integrations/strawberry/index.mdx | 5 +++- .../python/integrations/sys_exit/index.mdx | 3 +++ .../python/integrations/tryton/index.mdx | 5 +++- .../python/integrations/typer/index.mdx | 8 +++--- .../python/integrations/unleash/index.mdx | 3 +++ .../python/integrations/wsgi/index.mdx | 5 +++- docs/platforms/python/profiling/index.mdx | 7 +++++ docs/platforms/python/tracing/index.mdx | 3 +++ .../getting-started-config/python.mdx | 5 +++- 43 files changed, 186 insertions(+), 50 deletions(-) diff --git a/docs/platforms/python/configuration/options.mdx b/docs/platforms/python/configuration/options.mdx index 6fd92e3dbd56d..24b10daf99552 100644 --- a/docs/platforms/python/configuration/options.mdx +++ b/docs/platforms/python/configuration/options.mdx @@ -95,7 +95,7 @@ Grouping in Sentry is different for events with stack traces and without. As a r -If this flag is enabled, certain personally identifiable information (PII) is added by active integrations. By default, no such data is sent. +If this flag is enabled, [certain personally identifiable information (PII)](/platforms/python/data-management/data-collected/) is added by active integrations. By default, no such data is sent. diff --git a/docs/platforms/python/data-management/data-collected.mdx b/docs/platforms/python/data-management/data-collected.mdx index ec6c251760577..06df2bfdb1a80 100644 --- a/docs/platforms/python/data-management/data-collected.mdx +++ b/docs/platforms/python/data-management/data-collected.mdx @@ -10,19 +10,19 @@ The category types and amount of data collected vary, depending on the integrati ## HTTP Headers -By default, the Sentry SDK doesn't send any HTTP headers. Even when sending HTTP headers is enabled, we have a [Denylist](https://github.com/getsentry/sentry-python/blob/master/sentry_sdk/integrations/_wsgi_common.py#L19-L26) in place, which filters out any headers that contain sensitive data. +By default, the Sentry SDK doesn't send any HTTP headers. Even when sending HTTP headers is enabled, we have a [denylist](https://github.com/getsentry/sentry-python/blob/master/sentry_sdk/integrations/_wsgi_common.py#L19-L26) in place, which filters out any headers that contain sensitive data. To start sending HTTP headers, set `send_default_pii=True` in the `sentry_sdk.init()` call. ## Cookies -By default, the Sentry SDK doesn't send cookies. Sentry tries to remove any cookies that contain sensitive information, (such as the Session ID and CSRF Token cookies in Django). +By default, the Sentry SDK doesn't send cookies. Sentry tries to remove any cookies that contain sensitive information, such as the Session ID and CSRF Token cookies in Django. If you want to send cookies, set `send_default_pii=True` in the `sentry_sdk.init()` call. ## Information About Logged-in User -By default, the Sentry SDK doesn't send any information about the logged-in user, (such as email address, user id, or username). Even if enabled, the type of logged-in user information you'll be able to send depends on the integrations you enable in Sentry's SDK. Most integrations won't send any user information. Some will only set the user id, but there are a few that will set the user id, username, and email address. +By default, the Sentry SDK doesn't send any information about the logged-in user, such as email address, user ID, or username. Even if enabled, the type of logged-in user information you'll be able to send depends on the integrations you enable in Sentry's SDK. Most integrations won't send any user information. Some will only set the user ID, but there are a few that will set the user ID, username, and email address. To start sending logged-in user information, set `send_default_pii=True` in the `sentry_sdk.init()` call. @@ -45,9 +45,9 @@ The full request query string of outgoing and incoming HTTP requests is **always The request body of incoming HTTP requests can be sent to Sentry. Whether it's sent or not, depends on the type and size of request body as described below: - **The type of the request body:** - -JSON and form bodies are sent - -Raw request bodies are always removed - -Uploaded files in the request bodies are never sent to Sentry + - JSON and form bodies are sent + - Raw request bodies are always removed + - Uploaded files in the request bodies are never sent to Sentry - **The size of the request body:** There's a ["max_request_body_size"](/platforms/python/configuration/options/#max-request-body-size) option that's set to `medium` by default. This means that larger request bodies aren't sent to Sentry. If you want to prevent bodies from being sent to Sentry altogether, set `max_request_body_size` to `"never"`. @@ -60,10 +60,16 @@ To opt out of sending this source context to Sentry, set `include_source_context ## Local Variables In Stack Trace -When unhandled errors and exceptions are sent to Sentry, the names and values of local variables that were set when the errors occurred, are sent at the same time. +When unhandled errors and exceptions are sent to Sentry, the names and values of local variables that were set when the errors occurred are sent at the same time. You can stop sending local variables to Sentry by setting `include_local_variables=False` in the `sentry_sdk.init()` call. ## SQL Queries While SQL queries are sent to Sentry, neither the full SQL query (`UPDATE app_user SET password='supersecret' WHERE id=1;`), nor the values of its parameters will ever be sent. A parameterized version of the query (`UPDATE app_user SET password='%s' WHERE id=%s;`) is sent instead. + +## LLM Inputs And Responses + +When using Sentry in your AI apps, the SDK by default won't add data like LLM inputs and responses to spans. To start recording these, add `send_default_pii=True` to your `sentry_sdk.init()` call. + +Most AI integrations have an additional parameter to control whether prompts should be included called `include_prompts`. See the documentation for the specific AI framework for more information. diff --git a/docs/platforms/python/index.mdx b/docs/platforms/python/index.mdx index 4785844a1596d..f22ced55fd13f 100644 --- a/docs/platforms/python/index.mdx +++ b/docs/platforms/python/index.mdx @@ -38,11 +38,14 @@ Configuration should happen as early as possible in your application's lifecycle -```python {"onboardingOptions": {"performance": "5-7", "profiling": "8-11"}} +```python {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} import sentry_sdk sentry_sdk.init( dsn="___PUBLIC_DSN___", + # Add request headers and IP for users, + # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info + send_default_pii=True, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/asgi/index.mdx b/docs/platforms/python/integrations/asgi/index.mdx index 7cd2fa15bb496..e43b1a0231a7b 100644 --- a/docs/platforms/python/integrations/asgi/index.mdx +++ b/docs/platforms/python/integrations/asgi/index.mdx @@ -32,7 +32,7 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} +```python {"onboardingOptions": {"performance": "11-13", "profiling": "14-17"}} import sentry_sdk from sentry_sdk.integrations.asgi import SentryAsgiMiddleware @@ -40,6 +40,9 @@ from my_asgi_app import app 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/asyncio/index.mdx b/docs/platforms/python/integrations/asyncio/index.mdx index ce26b64093ff3..ccc577b62e5e3 100644 --- a/docs/platforms/python/integrations/asyncio/index.mdx +++ b/docs/platforms/python/integrations/asyncio/index.mdx @@ -28,13 +28,16 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {filename:main.py} {"onboardingOptions": {"performance": "7-9", "profiling": "10-13"}} +```python {filename:main.py} {"onboardingOptions": {"performance": "10-12", "profiling": "13-16"}} import sentry_sdk from sentry_sdk.integrations.asyncio import AsyncioIntegration async def main(): 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/aws-lambda/manual-instrumentation/index.mdx b/docs/platforms/python/integrations/aws-lambda/manual-instrumentation/index.mdx index 0fdc4abef65f0..d29a0a3a487ff 100644 --- a/docs/platforms/python/integrations/aws-lambda/manual-instrumentation/index.mdx +++ b/docs/platforms/python/integrations/aws-lambda/manual-instrumentation/index.mdx @@ -44,12 +44,15 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/beam/index.mdx b/docs/platforms/python/integrations/beam/index.mdx index 6f1e4971993d5..cc2005ed7b77f 100644 --- a/docs/platforms/python/integrations/beam/index.mdx +++ b/docs/platforms/python/integrations/beam/index.mdx @@ -24,12 +24,15 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk from sentry_sdk.integrations.beam import BeamIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/celery/crons.mdx b/docs/platforms/python/integrations/celery/crons.mdx index 555c35adf537c..ce565d032d173 100644 --- a/docs/platforms/python/integrations/celery/crons.mdx +++ b/docs/platforms/python/integrations/celery/crons.mdx @@ -50,7 +50,7 @@ Select which Sentry features you'd like to install in addition to Error Monitori options={["error-monitoring", "performance", "profiling"]} /> -```python {diff} {filename:tasks.py} {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} +```python {diff} {filename:tasks.py} {"onboardingOptions": {"performance": "15-17", "profiling": "18-21"}} # tasks.py from celery import signals @@ -62,6 +62,9 @@ from sentry_sdk.integrations.celery import CeleryIntegration def init_sentry(**kwargs): 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/celery/index.mdx b/docs/platforms/python/integrations/celery/index.mdx index 70e113501c5f3..6f801691e2d1b 100644 --- a/docs/platforms/python/integrations/celery/index.mdx +++ b/docs/platforms/python/integrations/celery/index.mdx @@ -35,7 +35,7 @@ In addition to capturing errors, you can use Sentry for [distributed tracing](/c options={["error-monitoring", "performance", "profiling"]} /> -```python {filename:tasks.py} {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} +```python {filename:tasks.py} {"onboardingOptions": {"performance": "15-17", "profiling": "18-21"}} from celery import Celery, signals import sentry_sdk @@ -47,6 +47,9 @@ app = Celery("tasks", broker="...") def init_sentry(**_kwargs): sentry_sdk.init( dsn="___PUBLIC_DSN___", + # Add request headers and IP for users, + # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info + send_default_pii=True, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, @@ -70,7 +73,7 @@ The [`celeryd_init`](https://docs.celeryq.dev/en/stable/userguide/signals.html?# options={["error-monitoring", "performance", "profiling"]} /> -```python {filename:main.py} {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} +```python {filename:main.py} {"onboardingOptions": {"performance": "11-13", "profiling": "14-17"}} from tasks import add import sentry_sdk @@ -78,6 +81,9 @@ def main(): # Initializing Sentry SDK in our process 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/cloudresourcecontext/index.mdx b/docs/platforms/python/integrations/cloudresourcecontext/index.mdx index e22c460339d81..56af486ea4190 100644 --- a/docs/platforms/python/integrations/cloudresourcecontext/index.mdx +++ b/docs/platforms/python/integrations/cloudresourcecontext/index.mdx @@ -30,12 +30,15 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk from sentry_sdk.integrations.cloud_resource_context import CloudResourceContextIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/django/index.mdx b/docs/platforms/python/integrations/django/index.mdx index 8b3f0449c0207..2f738a9cbd642 100644 --- a/docs/platforms/python/integrations/django/index.mdx +++ b/docs/platforms/python/integrations/django/index.mdx @@ -37,11 +37,14 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {filename:settings.py} {"onboardingOptions": {"performance": "5-7", "profiling": "8-11"}} +```python {filename:settings.py} {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} import sentry_sdk sentry_sdk.init( dsn="___PUBLIC_DSN___", + # Add data like request headers and IP for users; + # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info + send_default_pii=True, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/dramatiq/index.mdx b/docs/platforms/python/integrations/dramatiq/index.mdx index 59b084aea708b..614024e3a008c 100644 --- a/docs/platforms/python/integrations/dramatiq/index.mdx +++ b/docs/platforms/python/integrations/dramatiq/index.mdx @@ -32,6 +32,9 @@ from sentry_sdk.integrations.dramatiq import DramatiqIntegration 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=[ DramatiqIntegration(), ], diff --git a/docs/platforms/python/integrations/falcon/index.mdx b/docs/platforms/python/integrations/falcon/index.mdx index c335b9198da08..9a56663416994 100644 --- a/docs/platforms/python/integrations/falcon/index.mdx +++ b/docs/platforms/python/integrations/falcon/index.mdx @@ -65,7 +65,7 @@ from sentry_sdk.integrations.falcon import FalconIntegration sentry_sdk.init( # same as above - integrations = [ + integrations=[ FalconIntegration( transaction_style="path", ), diff --git a/docs/platforms/python/integrations/gcp-functions/index.mdx b/docs/platforms/python/integrations/gcp-functions/index.mdx index d2c123aa0955a..3d42469c57efd 100644 --- a/docs/platforms/python/integrations/gcp-functions/index.mdx +++ b/docs/platforms/python/integrations/gcp-functions/index.mdx @@ -35,12 +35,15 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk from sentry_sdk.integrations.gcp import GcpIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/gnu_backtrace/index.mdx b/docs/platforms/python/integrations/gnu_backtrace/index.mdx index 38fca9de1df96..15627075bfd4c 100644 --- a/docs/platforms/python/integrations/gnu_backtrace/index.mdx +++ b/docs/platforms/python/integrations/gnu_backtrace/index.mdx @@ -26,6 +26,9 @@ from sentry_sdk.integrations.gnu_backtrace import GnuBacktraceIntegration 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=[ GnuBacktraceIntegration(), ], diff --git a/docs/platforms/python/integrations/gql/index.mdx b/docs/platforms/python/integrations/gql/index.mdx index b3a82304a1fb6..21359a030dfe5 100644 --- a/docs/platforms/python/integrations/gql/index.mdx +++ b/docs/platforms/python/integrations/gql/index.mdx @@ -40,6 +40,8 @@ To have Sentry record the GraphQL queries and the `errors` information returned ```python sentry_sdk.init( # ... + # 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, ) ``` diff --git a/docs/platforms/python/integrations/graphene/index.mdx b/docs/platforms/python/integrations/graphene/index.mdx index 50b84911ca274..96e5f4dcc2aaa 100644 --- a/docs/platforms/python/integrations/graphene/index.mdx +++ b/docs/platforms/python/integrations/graphene/index.mdx @@ -67,6 +67,8 @@ To capture request bodies: ```python sentry_sdk.init( # same options as above + # 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, ) ``` diff --git a/docs/platforms/python/integrations/grpc/index.mdx b/docs/platforms/python/integrations/grpc/index.mdx index 968389c8422a4..827b3e3375e7c 100644 --- a/docs/platforms/python/integrations/grpc/index.mdx +++ b/docs/platforms/python/integrations/grpc/index.mdx @@ -37,7 +37,7 @@ Select which Sentry features you'd like to install in addition to Error Monitori ### Server -```python {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} +```python {"onboardingOptions": {"performance": "11-13", "profiling": "14-17"}} import grpc import sentry_sdk @@ -45,6 +45,9 @@ from sentry_sdk.integrations.grpc import GRPCIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/huggingface_hub/index.mdx b/docs/platforms/python/integrations/huggingface_hub/index.mdx index 48dd63eb3be49..e7b6cbf9532c7 100644 --- a/docs/platforms/python/integrations/huggingface_hub/index.mdx +++ b/docs/platforms/python/integrations/huggingface_hub/index.mdx @@ -77,6 +77,8 @@ from sentry_sdk.integrations.huggingface_hub import HuggingfaceHubIntegration sentry_sdk.init( # ... + # 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=[ HuggingfaceHubIntegration( diff --git a/docs/platforms/python/integrations/langchain/index.mdx b/docs/platforms/python/integrations/langchain/index.mdx index 0659ed62596a0..4c6626576b095 100644 --- a/docs/platforms/python/integrations/langchain/index.mdx +++ b/docs/platforms/python/integrations/langchain/index.mdx @@ -43,12 +43,14 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk sentry_sdk.init( dsn="___PUBLIC_DSN___", - send_default_pii=True, # send personally-identifiable information like LLM responses to sentry + # Send personally-identifiable information like LLM responses to Sentry; + # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info + send_default_pii=True, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for performance monitoring. traces_sample_rate=1.0, @@ -97,8 +99,7 @@ from sentry_sdk.integrations.langchain import LangchainIntegration sentry_sdk.init( # ... - send_default_pii=True, - integrations = [ + integrations=[ LangchainIntegration( include_prompts=False, # LLM/tokenizer inputs/outputs will be not sent to Sentry, despite send_default_pii=True max_spans=500, diff --git a/docs/platforms/python/integrations/launchdarkly/index.mdx b/docs/platforms/python/integrations/launchdarkly/index.mdx index 63e135aae4666..cf572246e8c4c 100644 --- a/docs/platforms/python/integrations/launchdarkly/index.mdx +++ b/docs/platforms/python/integrations/launchdarkly/index.mdx @@ -25,6 +25,9 @@ from sentry_sdk.integrations.launchdarkly import LaunchDarklyIntegration 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=[ LaunchDarklyIntegration(), ], diff --git a/docs/platforms/python/integrations/litestar/index.mdx b/docs/platforms/python/integrations/litestar/index.mdx index ed80f35c63e9f..884fab4dfa2dc 100644 --- a/docs/platforms/python/integrations/litestar/index.mdx +++ b/docs/platforms/python/integrations/litestar/index.mdx @@ -26,12 +26,15 @@ Add `LitestarIntegration()` to your `integrations` list: ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk from sentry_sdk.integrations.litestar import LitestarIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/logging/index.mdx b/docs/platforms/python/integrations/logging/index.mdx index d040fa2f5953d..b2f30a6d1aac7 100644 --- a/docs/platforms/python/integrations/logging/index.mdx +++ b/docs/platforms/python/integrations/logging/index.mdx @@ -22,7 +22,10 @@ The logging integrations is a default integration so it will be enabled automati import sentry_sdk sentry_sdk.init( - dsn="___PUBLIC_DSN___" + 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, ) ``` diff --git a/docs/platforms/python/integrations/loguru/index.mdx b/docs/platforms/python/integrations/loguru/index.mdx index 878a31984726d..805b0814021e3 100644 --- a/docs/platforms/python/integrations/loguru/index.mdx +++ b/docs/platforms/python/integrations/loguru/index.mdx @@ -25,6 +25,9 @@ import sentry_sdk 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, ) ``` diff --git a/docs/platforms/python/integrations/openai/index.mdx b/docs/platforms/python/integrations/openai/index.mdx index 66996f2125711..7a8f2590f9772 100644 --- a/docs/platforms/python/integrations/openai/index.mdx +++ b/docs/platforms/python/integrations/openai/index.mdx @@ -86,8 +86,10 @@ from sentry_sdk.integrations.openai import OpenAIIntegration sentry_sdk.init( # ... + # Add data like inputs and responses; + # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info send_default_pii=True, - integrations = [ + integrations=[ OpenAIIntegration( include_prompts=False, # LLM/tokenizer inputs/outputs will be not sent to Sentry, despite send_default_pii=True tiktoken_encoding_name="cl100k_base", diff --git a/docs/platforms/python/integrations/openfeature/index.mdx b/docs/platforms/python/integrations/openfeature/index.mdx index d1e87d54328d3..156fe99466a5c 100644 --- a/docs/platforms/python/integrations/openfeature/index.mdx +++ b/docs/platforms/python/integrations/openfeature/index.mdx @@ -25,6 +25,9 @@ from sentry_sdk.integrations.openfeature import OpenFeatureIntegration 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=[ OpenFeatureIntegration(), ], diff --git a/docs/platforms/python/integrations/pure_eval/index.mdx b/docs/platforms/python/integrations/pure_eval/index.mdx index ae5e72f391af9..ec501d0d2fb11 100644 --- a/docs/platforms/python/integrations/pure_eval/index.mdx +++ b/docs/platforms/python/integrations/pure_eval/index.mdx @@ -24,6 +24,9 @@ from sentry_sdk.integrations.pure_eval import PureEvalIntegration sentry_sdk.init( dns="___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=[ PureEvalIntegration(), ], diff --git a/docs/platforms/python/integrations/ray/index.mdx b/docs/platforms/python/integrations/ray/index.mdx index bef4855b8bfa9..6f9c963df8d9d 100644 --- a/docs/platforms/python/integrations/ray/index.mdx +++ b/docs/platforms/python/integrations/ray/index.mdx @@ -26,7 +26,7 @@ Select which Sentry features you'd like to install in addition to Error Monitori options={["error-monitoring", "performance", "profiling"]} /> -```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} +```python {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} import ray import sentry_sdk @@ -35,6 +35,9 @@ from sentry_sdk.integrations.ray import RayIntegration def init_sentry(): 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/rq/index.mdx b/docs/platforms/python/integrations/rq/index.mdx index 74267737c4200..c11d5e19009ff 100644 --- a/docs/platforms/python/integrations/rq/index.mdx +++ b/docs/platforms/python/integrations/rq/index.mdx @@ -32,12 +32,15 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {filename:mysettings.py} {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {filename:mysettings.py} {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} # mysettings.py import sentry_sdk 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, @@ -63,12 +66,15 @@ Generally, make sure that the **call to `init` is loaded on worker startup**, an In addition, make sure that **`init` is called only once** in your app. For example, if you have a `Flask` app and a worker that depends on the app, we recommend only initializing Sentry once. Note that because the Flask integration is enabled automatically, you don't need to change the configuration shown above. -```python {filename:app.py} {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {filename:app.py} {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} # app.py import sentry_sdk sentry_sdk.init( - dsn=___PUBLIC_DSN___, + 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, @@ -102,13 +108,16 @@ def hello(name): ### Settings for worker -```python {filename:mysettings.py} {"onboardingOptions": {"performance": "7-9", "profiling": "10-13"}} +```python {filename:mysettings.py} {"onboardingOptions": {"performance": "10-12", "profiling": "13-16"}} # mysettings.py import sentry_sdk # Sentry configuration for RQ worker processes sentry_sdk.init( - dsn=___PUBLIC_DSN___, + 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, @@ -121,7 +130,7 @@ sentry_sdk.init( ### Main Python Script -```python {filename:main.py} {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} +```python {filename:main.py} {"onboardingOptions": {"performance": "18-20", "profiling": "21-24"}} # main.py from redis import Redis from rq import Queue @@ -132,7 +141,10 @@ import sentry_sdk # Sentry configuration for main.py process sentry_sdk.init( - dsn=___PUBLIC_DSN___, + 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/rust_tracing/index.mdx b/docs/platforms/python/integrations/rust_tracing/index.mdx index c777f40292069..a17e62696b7f7 100644 --- a/docs/platforms/python/integrations/rust_tracing/index.mdx +++ b/docs/platforms/python/integrations/rust_tracing/index.mdx @@ -62,7 +62,7 @@ Create an instance of `RustTracingIntegration` and add it to your list of integr ]} /> -```python {filename:main.py} {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} +```python {filename:main.py} {"onboardingOptions": {"performance": "12-14", "profiling": "15-18"}} import sentry_sdk from sentry_sdk.integrations.rust_tracing import RustTracingIntegration @@ -71,6 +71,9 @@ import my_rust_extension async def main(): 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/sanic/index.mdx b/docs/platforms/python/integrations/sanic/index.mdx index 82174266027aa..99347bdb44bba 100644 --- a/docs/platforms/python/integrations/sanic/index.mdx +++ b/docs/platforms/python/integrations/sanic/index.mdx @@ -40,7 +40,7 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "11-13", "profiling": "14-17"}} +```python {"onboardingOptions": {"performance": "14-17", "profiling": "17-20"}} from sanic import Sanic import sentry_sdk from sentry_sdk.integrations.asyncio import AsyncioIntegration @@ -51,6 +51,9 @@ app = Sanic(__main__) async def init_sentry(_): sentry_sdk.init( dsn="___PUBLIC_DSN___", + # Add data like request headers and IP for users; + # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info + send_default_pii=True, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/serverless/index.mdx b/docs/platforms/python/integrations/serverless/index.mdx index f9c47bb28068f..a8eb71db50189 100644 --- a/docs/platforms/python/integrations/serverless/index.mdx +++ b/docs/platforms/python/integrations/serverless/index.mdx @@ -37,12 +37,15 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk from sentry_sdk.integrations.serverless import serverless_function 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/socket/index.mdx b/docs/platforms/python/integrations/socket/index.mdx index 410d2547e02d9..a1564f6e3d354 100644 --- a/docs/platforms/python/integrations/socket/index.mdx +++ b/docs/platforms/python/integrations/socket/index.mdx @@ -30,12 +30,15 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk from sentry_sdk.integrations.socket import SocketIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/spark/index.mdx b/docs/platforms/python/integrations/spark/index.mdx index 65dcdaf7a2836..4a0441e7ce43c 100644 --- a/docs/platforms/python/integrations/spark/index.mdx +++ b/docs/platforms/python/integrations/spark/index.mdx @@ -26,13 +26,16 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "7-9", "profiling": "10-13"}} +```python {"onboardingOptions": {"performance": "10-12", "profiling": "13-16"}} import sentry_sdk from sentry_sdk.integrations.spark import SparkIntegration if __name__ == "__main__": 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, @@ -59,7 +62,7 @@ The spark worker integration is supported for Spark versions 2.4.x and 3.1.x. Create a file called `sentry-daemon.py` with the following content: -```python {filename:sentry-daemon.py} {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} +```python {filename:sentry-daemon.py} {"onboardingOptions": {"performance": "11-13", "profiling": "14-17"}} import sentry_sdk from sentry_sdk.integrations.spark import SparkWorkerIntegration import pyspark.daemon as original_daemon @@ -67,6 +70,9 @@ import pyspark.daemon as original_daemon if __name__ == '__main__': 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/strawberry/index.mdx b/docs/platforms/python/integrations/strawberry/index.mdx index 1a34be1e0f540..0c3a6cad27e93 100644 --- a/docs/platforms/python/integrations/strawberry/index.mdx +++ b/docs/platforms/python/integrations/strawberry/index.mdx @@ -32,12 +32,15 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "6-8", "profiling": "9-12"}} +```python {"onboardingOptions": {"performance": "9-11", "profiling": "12-15"}} import sentry_sdk from sentry_sdk.integrations.strawberry import StrawberryIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/sys_exit/index.mdx b/docs/platforms/python/integrations/sys_exit/index.mdx index e3c59e8e4a900..e1a749c7f20fa 100644 --- a/docs/platforms/python/integrations/sys_exit/index.mdx +++ b/docs/platforms/python/integrations/sys_exit/index.mdx @@ -27,6 +27,9 @@ from sentry_sdk.integrations.sys_exit import SysExitIntegration 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=[SysExitIntegration()], ) ``` diff --git a/docs/platforms/python/integrations/tryton/index.mdx b/docs/platforms/python/integrations/tryton/index.mdx index bb4d45c3bea43..0336a1561967e 100644 --- a/docs/platforms/python/integrations/tryton/index.mdx +++ b/docs/platforms/python/integrations/tryton/index.mdx @@ -22,13 +22,16 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {filename:wsgi.py} {"onboardingOptions": {"performance": "7-9", "profiling": "10-13"}} +```python {filename:wsgi.py} {"onboardingOptions": {"performance": "10-12", "profiling": "13-16"}} # wsgi.py import sentry_sdk from sentry_sdk.integrations.trytond import TrytondWSGIIntegration 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/integrations/typer/index.mdx b/docs/platforms/python/integrations/typer/index.mdx index 4498490d6f3f0..ba68037704299 100644 --- a/docs/platforms/python/integrations/typer/index.mdx +++ b/docs/platforms/python/integrations/typer/index.mdx @@ -23,6 +23,9 @@ from sentry_sdk.integrations.typer import TyperIntegration 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=[TyperIntegration()], ) ``` @@ -36,10 +39,7 @@ import typer import sentry_sdk from sentry_sdk.integrations.typer import TyperIntegration -sentry_sdk.init( - dsn="___PUBLIC_DSN___", - integrations=[TyperIntegration()], -) +sentry_sdk.init(...) # see above def main(): 1 / 0 diff --git a/docs/platforms/python/integrations/unleash/index.mdx b/docs/platforms/python/integrations/unleash/index.mdx index 9fb9c237b6159..88fe046e22251 100644 --- a/docs/platforms/python/integrations/unleash/index.mdx +++ b/docs/platforms/python/integrations/unleash/index.mdx @@ -25,6 +25,9 @@ from sentry_sdk.integrations.unleash import UnleashIntegration 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=[UnleashIntegration()], ) ``` diff --git a/docs/platforms/python/integrations/wsgi/index.mdx b/docs/platforms/python/integrations/wsgi/index.mdx index 7e09a4f4e9336..680e155521d2c 100644 --- a/docs/platforms/python/integrations/wsgi/index.mdx +++ b/docs/platforms/python/integrations/wsgi/index.mdx @@ -31,7 +31,7 @@ Select which Sentry features you'd like to install in addition to Error Monitori ]} /> -```python {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} +```python {"onboardingOptions": {"performance": "11-13", "profiling": "14-17"}} import sentry_sdk from sentry_sdk.integrations.wsgi import SentryWsgiMiddleware @@ -39,6 +39,9 @@ from my_wsgi_app import app 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0, diff --git a/docs/platforms/python/profiling/index.mdx b/docs/platforms/python/profiling/index.mdx index b1e4af71e009f..e6bb41a4c59b2 100644 --- a/docs/platforms/python/profiling/index.mdx +++ b/docs/platforms/python/profiling/index.mdx @@ -25,6 +25,11 @@ def profiles_sampler(sampling_context): 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, + traces_sample_rate=1.0, # To set a uniform sample rate @@ -71,6 +76,7 @@ import sentry_sdk sentry_sdk.init( dsn="___PUBLIC_DSN___", + send_default_pii=True, traces_sample_rate=1.0, ) @@ -88,6 +94,7 @@ import sentry_sdk sentry_sdk.init( dsn="___PUBLIC_DSN___", + send_default_pii=True, traces_sample_rate=1.0, _experiments={ "continuous_profiling_auto_start": True, diff --git a/docs/platforms/python/tracing/index.mdx b/docs/platforms/python/tracing/index.mdx index 9ccfcbef5d020..a44890f06ba35 100644 --- a/docs/platforms/python/tracing/index.mdx +++ b/docs/platforms/python/tracing/index.mdx @@ -18,6 +18,9 @@ import sentry_sdk 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, + # We recommend adjusting this value in production + traces_sample_rate=1.0, ) diff --git a/platform-includes/getting-started-config/python.mdx b/platform-includes/getting-started-config/python.mdx index 2e70bbae9789c..c03d05050c5ce 100644 --- a/platform-includes/getting-started-config/python.mdx +++ b/platform-includes/getting-started-config/python.mdx @@ -1,8 +1,11 @@ -```python {"onboardingOptions": {"performance": "5-7", "profiling": "8-11"}} +```python {"onboardingOptions": {"performance": "8-10", "profiling": "11-14"}} import sentry_sdk 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, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for tracing. traces_sample_rate=1.0,