收集的数据

查看 Sentry SDK 收集的数据。

Sentry 非常重视数据隐私,并且设置了默认设置以优先考虑数据安全,特别是在涉及个人身份信息 (PII) 数据时。当你将 Sentry SDK 添加到应用程序中时,允许它在应用程序运行期间收集数据并将其发送到 Sentry。

收集的数据类别和数据量取决于你在 Sentry SDK 中启用的集成。以下是 Sentry Python SDK 收集的数据类别列表:

默认情况下,Sentry SDK 不会发送任何 HTTP 头。即使启用了发送 HTTP 头,我们也有一个 拒绝列表,用于过滤包含敏感数据的任何头信息。

要开始发送 HTTP 头,请在 sentry_sdk.init() 调用中设置 send_default_pii=True

默认情况下,Sentry SDK 不会发送 cookies。Sentry 尝试移除包含敏感信息的任何 cookies(例如 Django 中的会话 ID 和 CSRF Token cookies)。

如果你想发送 cookies,请在 sentry_sdk.init() 调用中设置 send_default_pii=True

默认情况下,Sentry SDK 不会发送任何关于登录用户的信息(例如电子邮件地址、用户 ID 或用户名)。即使启用,你能够发送的登录用户信息类型取决于你在 Sentry SDK 中启用的集成。大多数集成不会发送任何用户信息。有些只会设置用户 ID,但有一些会设置用户 ID、用户名和电子邮件地址。

要开始发送登录用户的信息,请在 sentry_sdk.init() 调用中设置 send_default_pii=True

默认情况下,Sentry SDK 不会发送用户的 IP 地址。即使启用,是否能够发送用户的 IP 地址也将取决于你在 Sentry SDK 中启用的集成。大多数集成根本不会设置用户的 IP 地址。

要启用发送用户的 IP 地址,请在 sentry_sdk.init() 调用中设置 send_default_pii=True

传出和传入 HTTP 请求的完整请求 URL 始终会发送到 Sentry。根据你的应用程序,这可能包含 PII 数据。

传出和传入 HTTP 请求的完整请求查询字符串 始终会发送到 Sentry。根据你的应用程序,这可能包含 PII 数据。

传入 HTTP 请求的请求体可以发送到 Sentry。是否发送取决于请求体的类型和大小,如下所述:

  • 请求体的类型:
    • JSON 和表单体被发送
    • 原始请求体始终被移除
    • 请求体中的上传文件永远不会发送到 Sentry
  • 请求体的大小: 有一个 "max_request_body_size" 选项,默认设置为 medium。这意味着较大的请求体不会发送到 Sentry。

如果你想完全防止请求体发送到 Sentry,请将 max_request_body_size 设置为 "never"

当未处理的异常发送到 Sentry 时,会发送错误发生行周围的源代码快照。

要选择不将此源代码上下文发送到 Sentry,请将 include_source_context 设置为 False

当未处理的错误和异常发送到 Sentry 时,同时会发送错误发生时设置的局部变量的名称和值。

你可以通过在 sentry_sdk.init() 调用中设置 include_local_variables=False 来停止发送局部变量到 Sentry。

虽然 SQL 查询会发送到 Sentry,但完整的 SQL 查询(UPDATE app_user SET password='supersecret' WHERE id=1;)及其参数的值永远不会发送。相反,会发送参数化版本的查询(UPDATE app_user SET password='%s' WHERE id=%s;)。