Skip to content

Commit 99d7772

Browse files
committed
Merge branch 'master' into antonis/react-native-feedback-widget
2 parents 3144a50 + b8eeb33 commit 99d7772

File tree

106 files changed

+2143
-682
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+2143
-682
lines changed

develop-docs/sdk/data-model/envelope-items.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ details.
146146

147147
*None*
148148

149-
### Statsd
149+
### Statsd (deprecated)
150150

151151
Item type `"statsd"` contains metrics emissions in a superset of the statsd format.
152152

@@ -162,7 +162,7 @@ details.
162162

163163
*None*
164164

165-
### Metric Meta
165+
### Metric Meta (deprecated)
166166

167167
Item type `"metric_meta"` contains per-metric meta data which is persisted alongside
168168
metrics in the system.

docs/account/auth-tokens/index.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,12 @@ User auth token permissions are customizable but cannot be edited later.
4747

4848
![](./img/org-auth-tokens-overview.png)
4949

50+
<Alert>
51+
5052
They can also be generated on certain pages of Sentry's docs if you're signed in, and by using the Sentry Wizard to configure uploading source maps.
5153

54+
</Alert>
55+
5256
Organization auth token names are generated for you unless you create the token through the Sentry UI. This name is only used for display purposes - it helps to identify an auth token in case you want to revoke it later. You can change the name for an organization auth token at [sentry.io](https://sentry.io) on the **Edit Auth Token** page under **Settings > Developer Settings > Auth Tokens**.
5357

5458
For security reasons, organization auth tokens are only visible _once_, right after you create them. If you lose the auth token, you will have to create a new one. This means you can't see the full token on the overview page or on the token detail page, you can only see the last characters of the token to help identify it.
Loading
Loading

docs/concepts/data-management/event-grouping/index.mdx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,32 @@ If the stack trace is not available, but exception information is, then the grou
5555

5656
Grouping falls back to messages if the stack trace, `type`, and `value` are not available. When this happens, the grouping algorithm will try to use the message without any parameters. If that is not available, the grouping algorithm will use the full message attribute.
5757

58+
### AI-Enhanced Grouping
59+
60+
In addition to fingerprint-based grouping, Sentry uses AI to further improve issue grouping accuracy. This system helps identify semantically similar errors that might have different fingerprints due to minor code variations. The AI grouping system works alongside traditional fingerprinting - it only attempts to group new issues and will never split up issues that were grouped by fingerprint.
61+
62+
This system will not apply to any events that have fully custom fingerprints (either set via SDK or [fingerprint rules](https://docs.sentry.io/product/issues/grouping-and-fingerprints/#fingerprint-rules)). However, events with fingerprints containing `{{ default }}` will use AI grouping to calculate the `{{ default }}` portion of the fingerprint.
63+
64+
When Sentry's default fingerprinting algorithm generates a new hash, it automatically sends the error data to [Seer](https://github.com/getsentry/seer), our AI/ML service. That error data includes the message and in-app stack frames (including those configured with stack trace rules), or all frames when no in-app frames are present.
65+
66+
Seer performs the following steps:
67+
68+
1. It generates a vector representation of the error's stack trace using a transformer-based text embedding model
69+
2. It compares this embedding against existing error embeddings for that project in the database
70+
3. If a semantically similar error is found within the configured threshold, Sentry merges the new error into the existing issue
71+
72+
![Sentry Seer PostgreSQL.](./img/sentry-seer-postgresql.png)
73+
74+
This algorithm is particularly effective at handling cases where:
75+
76+
- Similar errors occur in different parts of the codebase
77+
- Code changes or deployments introduce slight variations in stack traces
78+
- Different error types represent the same underlying problem
79+
80+
You can see issues that have been merged through this system in the “Merged Issues” section of the Issue Details UI. You can always unmerge any fingerprints that you would not like to see grouped, and our system will avoid grouping them in the future.
81+
82+
![Merged issues.](./img/merged-issues.png)
83+
5884
## Ways to Customize Error Grouping
5985

6086
If the way that Sentry is grouping issues for your organization is already ideal, you don't need to make any changes. However, you may find that Sentry is either creating too many similar groups, or is grouping disparate events into groups that should be separate. If this is the case, for **error issues**, you can extend and change the default grouping behavior. Error grouping can be extended and changed completely according to your needs. Transaction grouping currently cannot be customized.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
title: Data Collected
3+
description: "See what data is collected by the Sentry SDK."
4+
sidebar_order: 1
5+
---
6+
7+
Sentry takes data privacy very seriously and has default settings in place that prioritize data safety, especially when it comes to personally identifiable information (PII) data. When you add the Sentry SDK to your application, you allow it to collect data and send it to Sentry during the runtime of your application.
8+
9+
The category types and amount of data collected vary, depending on the integrations you've enabled in the Sentry SDK. This page lists data categories that the Sentry Android SDK collects.
10+
11+
Many of the categories listed here require you to enable the <PlatformLink to="/configuration/options/#send-default-pii">sendDefaultPii option</PlatformLink>.
12+
13+
## HTTP Headers
14+
15+
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-java/blob/main/sentry/src/main/java/io/sentry/util/HttpUtils.java#L21-L34) in place, which filters out any headers that contain sensitive data.
16+
17+
To start sending HTTP headers, set <PlatformLink to="/configuration/options/#send-default-pii">`sendDefaultPii=true`</PlatformLink>.
18+
19+
## Cookies
20+
21+
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.
22+
23+
If you want to send cookies, set <PlatformLink to="/configuration/options/#send-default-pii">`sendDefaultPii=true`</PlatformLink>.
24+
25+
## Information About Logged-in User
26+
27+
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.
28+
29+
To start sending logged-in user information, set <PlatformLink to="/configuration/options/#send-default-pii">`sendDefaultPii=true`</PlatformLink>.
30+
31+
## Users' IP Addresses
32+
33+
By default, the Sentry SDK doesn't send the user's IP address. Once enabled, the Sentry backend services will infer the user ip address based on the incoming request, unless certain integrations you can enable override this behavior.
34+
35+
To enable sending the user's IP address, set <PlatformLink to="/configuration/options/#send-default-pii">`sendDefaultPii=true`</PlatformLink>.
36+
37+
## Request URL
38+
39+
The full request URL of outgoing and incoming HTTP requests is **always sent to Sentry**. Depending on your application, this could contain PII data.
40+
41+
## Request Query String
42+
43+
The full request query string of outgoing and incoming HTTP requests is **always sent to Sentry**. Depending on your application, this could contain PII data.
44+
45+
## Request Body
46+
47+
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:
48+
49+
- **The type of the request body:**
50+
- JSON and form bodies are sent
51+
- **The size of the request body:** There's a <PlatformLink to="/configuration/options/#max-request-body-size">maxRequestBodySize</PlatformLink> option that's set to `NONE` by default. This means by default no request body is sent to Sentry.
52+
53+
## Source Context
54+
55+
Our build tool plugins for Gradle and Maven can upload your source code to Sentry, which can then used to show the lines of code where an error happened in the Issue Details page.
56+
57+
To opt into sending this source context to Sentry, you have to enable the feature as described in <PlatformLink to="/source-context/">the Source Context documentation</PlatformLink>.
58+
59+
## File I/O
60+
61+
By default the Sentry SDK does not send the name or path of files when instrumenting File I/O.
62+
63+
If you want to send file names and paths, set <PlatformLink to="/configuration/options/#send-default-pii">`sendDefaultPii=true`</PlatformLink>.
64+
65+
## Device Information
66+
67+
By default the Sentry SDK does not send the name of the device (Android phone).
68+
69+
If you want to send the device name, set <PlatformLink to="/configuration/options/#send-default-pii">`sendDefaultPii=true`</PlatformLink>.
70+
71+
## SQL Queries
72+
73+
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=? WHERE id=?;`) is sent instead.
74+
75+
## Session Replay
76+
77+
By default, our Session Replay SDK masks all text content, images, webviews, and user input. This helps ensure that no sensitive data is exposed. You can find <PlatformLink to="/session-replay/privacy/">more details in the Session Replay documentation</PlatformLink>.

docs/platforms/android/index.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,12 @@ The wizard will prompt you to log in to Sentry. It'll then automatically do the
7474
Configuration is done via the application `AndroidManifest.xml`. Here's an example config which should get you started:
7575

7676

77-
```xml {filename:AndroidManifest.xml} {"onboardingOptions": {"performance": "4-5", "profiling": "6-7"}}
77+
```xml {filename:AndroidManifest.xml} {"onboardingOptions": {"performance": "6-7", "profiling": "8-9"}}
7878
<application>
7979
<!-- Required: set your sentry.io project identifier (DSN) -->
8080
<meta-data android:name="io.sentry.dsn" android:value="___PUBLIC_DSN___" />
81+
<!-- Add data like request headers, user ip address and device name, see https://docs.sentry.io/platforms/android/data-management/data-collected/ for more info -->
82+
<meta-data android:name="io.sentry.send-default-pii" android:value="true" />
8183
<!-- enable the performance API by setting a sample-rate, adjust in production env -->
8284
<meta-data android:name="io.sentry.traces.sample-rate" android:value="1.0" />
8385
<!-- enable profiling when starting transactions, adjust in production env -->

docs/platforms/android/manual-setup/index.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ Configuration is done via the application `AndroidManifest.xml`. Here's an examp
3636
<!-- Required: set your sentry.io project identifier (DSN) -->
3737
<meta-data android:name="io.sentry.dsn" android:value="___PUBLIC_DSN___" />
3838

39+
<!-- Add data like request headers, user ip address and device name, see https://docs.sentry.io/platforms/android/data-management/data-collected/ for more info -->
40+
<meta-data android:name="io.sentry.send-default-pii" android:value="true" />
41+
3942
<!-- enable automatic breadcrumbs for user interactions (clicks, swipes, scrolls) -->
4043
<meta-data android:name="io.sentry.traces.user-interaction.enable" android:value="true" />
4144
<!-- enable screenshot for crashes -->

docs/platforms/apple/common/configuration/app-hangs.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ This feature is experimental and may have bugs.
139139

140140
</Alert>
141141

142-
As of version 8.39.0-beta.1, you can enable AppHangsV2, which is available on iOS and tvOS. The main difference is that AppHangsV2 differentiates between fully-blocking and non-fully-blocking app hangs, which you might choose to ignore. A fully-blocking app hang is when the main thread is stuck completely, and the app can't render a single frame. A non-fully-blocking app hang is when the app appears stuck to the user, but can still render a few frames. Fully-blocking app hangs are more actionable because the stacktrace shows the exact blocking location on the main thread. Non-fully-blocking app hangs can have a stacktrace that doesn't highlight the exact blocking location, since the main thread isn't completely blocked.
142+
As of version 8.39.0-beta.1, you can enable AppHangsV2, which is available on iOS and tvOS. The main difference is that AppHangsV2 differentiates between fully-blocking and non-fully-blocking app hangs, which you might choose to ignore, and since version 8.45.0 measures the duration of app hangs. A fully-blocking app hang is when the main thread is stuck completely, and the app can't render a single frame. A non-fully-blocking app hang is when the app appears stuck to the user, but can still render a few frames. Fully-blocking app hangs are more actionable because the stacktrace shows the exact blocking location on the main thread. Non-fully-blocking app hangs can have a stacktrace that doesn't highlight the exact blocking location, since the main thread isn't completely blocked.
143143

144144
To enable the feature:
145145

docs/platforms/apple/common/features/experimental-features.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Do you want to try some new experimental features? On the latest version of the
1212
- Enable <PlatformLink to="/profiling/#continuous-profiling">Continuous Profiling</PlatformLink> to get full coverage of your app's execution.
1313
</PlatformSection>
1414
- If you use Swift concurrency, stitch together stack traces of your async code with the `swiftAsyncStacktraces` option. Note that you can enable this in your Objective-C project, but only async code written in Swift will be stitched together.
15-
- Enable <PlatformLink to="/configuration/app-hangs/#app-hangs-v2">AppHangsV2</PlatformLink> to get more detailed app hangs. The main difference is that AppHangsV2 differentiates between fully-blocking and non-fully-blocking app hangs.
15+
- Enable <PlatformLink to="/configuration/app-hangs/#app-hangs-v2">AppHangsV2</PlatformLink> to get more detailed app hangs. The main difference is that AppHangsV2 differentiates between fully-blocking and non-fully-blocking app hangs and measures the duration of app hangs.
1616

1717
<Alert>
1818
Experimental features are still a work-in-progress and may have bugs. We

0 commit comments

Comments
 (0)