From a760ce4725f66813103bec024ca654d3bd5a8405 Mon Sep 17 00:00:00 2001 From: Ryan Albrecht Date: Fri, 12 Jul 2024 14:32:57 -0700 Subject: [PATCH 01/12] docs(replay): Replay Issue types & hydration errors --- .../session-replay/img/replay-settings.png | Bin 0 -> 35088 bytes .../common/session-replay/issue-types.mdx | 30 +++++++++ .../common/session-replay/troubleshooting.mdx | 21 ++++++ .../session-replay/understanding-sessions.mdx | 2 +- .../replay-issues/hydration-error.mdx | 7 ++ .../issue-details/replay-issues/index.mdx | 55 +++------------- .../replay-issues/rage-clicks.mdx | 61 ++++++++++++++++++ 7 files changed, 129 insertions(+), 47 deletions(-) create mode 100644 docs/platforms/javascript/common/session-replay/img/replay-settings.png create mode 100644 docs/platforms/javascript/common/session-replay/issue-types.mdx create mode 100644 docs/product/issues/issue-details/replay-issues/hydration-error.mdx create mode 100644 docs/product/issues/issue-details/replay-issues/rage-clicks.mdx diff --git a/docs/platforms/javascript/common/session-replay/img/replay-settings.png b/docs/platforms/javascript/common/session-replay/img/replay-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..cdfd47126d7642dda00c9b75e8f6b63a542bb6a6 GIT binary patch literal 35088 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 literal 0 HcmV?d00001 diff --git a/docs/platforms/javascript/common/session-replay/issue-types.mdx b/docs/platforms/javascript/common/session-replay/issue-types.mdx new file mode 100644 index 0000000000000..e4a30e5e3a129 --- /dev/null +++ b/docs/platforms/javascript/common/session-replay/issue-types.mdx @@ -0,0 +1,30 @@ +--- +title: Replay Issues +sidebar_order: 4300 +notSupported: + - javascript.cordova + - javascript.wasm + - javascript.bun + - javascript.deno + - javascript.node + - javascript.aws-lambda + - javascript.azure-functions + - javascript.connect + - javascript.express + - javascript.fastify + - javascript.gcp-functions + - javascript.hapi + - javascript.koa + - javascript.nestjs +description: "Learn about the Issue types that Session Replay can detect." +--- + +A _[replay issue](/product/issues/issue-details/replay-issues/)_ is an issue detected using captured Session Replay data. If your application is configured with [Session Replay](/product/session-replay/) problems will be detected on the server side during replay ingest, and grouped into issues. We group similar events into issues based on a fingerprint. For replay issues, a fingerprint is primarily based on the problem type and the url or transaction name where the problem occurred. + +You can configure which issue types are created by visiting Project Settings > Replay and toggling detection on or off for each issue types. + +![Replay settings page](./img/replay-settings.png) + +## Rage Click Issues + +If you are diff --git a/docs/platforms/javascript/common/session-replay/troubleshooting.mdx b/docs/platforms/javascript/common/session-replay/troubleshooting.mdx index 4cfe10a2099bf..83e9edb99c449 100644 --- a/docs/platforms/javascript/common/session-replay/troubleshooting.mdx +++ b/docs/platforms/javascript/common/session-replay/troubleshooting.mdx @@ -46,6 +46,27 @@ Due to [browser limitations](https://developer.mozilla.org/en-US/docs/Web/SVG/El + + +There might be fewer rage clicks than you expect if the user stopped waiting for the site to respond before the 7 second threshold and instead chose to to something else. This is why the rage click issues that you *do* see are so valuable, because the user that clicked at least 3 times and continued waiting at least 7 seconds for the site to respond is likely very frustrated. + +You might also see more rage clicks than you expected from buttons that don't trigger a DOM mutation or page scroll (such as Print and Download buttons). There is no reliable way for the SDK to detect that a download or print has initiated, so a slow click might be generated even if the button is not actually "dead". For these cases, you can configure the SDK via `slowClickIgnoreSelectors` - see [Configuration](/platforms/javascript/session-replay/configuration/) for more details. + +For example, to ignore detection of dead and rage clicks for download links in your application: + +```javascript +Sentry.replayIntegration({ + slowClickIgnoreSelectors: [ + ".download", + // Any link with a label including "download" (case-insensitive) + 'a[label*="download" i]', + ], +}); +``` + + + + By default, Replay will capture basic information about all outgoing fetch and XHR requests in your application. This includes the URL, request and response body size, method, and status code. diff --git a/docs/platforms/javascript/common/session-replay/understanding-sessions.mdx b/docs/platforms/javascript/common/session-replay/understanding-sessions.mdx index 1e27a9502b420..b2cb7f5435c1e 100644 --- a/docs/platforms/javascript/common/session-replay/understanding-sessions.mdx +++ b/docs/platforms/javascript/common/session-replay/understanding-sessions.mdx @@ -1,6 +1,6 @@ --- title: Understanding Sessions -sidebar_order: 4300 +sidebar_order: 4400 notSupported: - javascript.cordova - javascript.wasm diff --git a/docs/product/issues/issue-details/replay-issues/hydration-error.mdx b/docs/product/issues/issue-details/replay-issues/hydration-error.mdx new file mode 100644 index 0000000000000..98fbeb55d284f --- /dev/null +++ b/docs/product/issues/issue-details/replay-issues/hydration-error.mdx @@ -0,0 +1,7 @@ +--- +title: Hydration Error +sidebar_order: 50 +description: "Learn about hydration errors." +--- + +Hydration errors are cool. diff --git a/docs/product/issues/issue-details/replay-issues/index.mdx b/docs/product/issues/issue-details/replay-issues/index.mdx index 2b2722778e30c..6a476081890f6 100644 --- a/docs/product/issues/issue-details/replay-issues/index.mdx +++ b/docs/product/issues/issue-details/replay-issues/index.mdx @@ -1,58 +1,21 @@ --- -title: Rage Click Issues +title: Replay Issues sidebar_order: 30 -description: "Learn about Session Replay rage click issues." +description: "Learn more about which replay issues Sentry detects." --- -If you've enabled [Session Replay](/product/explore/session-replay/), you'll be able to see rage click issues on the [**Issues**](https://sentry.io/orgredirect/organizations/:orgslug/issues/) page in Sentry. Rage clicks are a series of consecutive clicks on the same unresponsive element. They are a sure sign of user frustration and most likely deserve your attention. +If you've enabled [Session Replay](/product/explore/session-replay/), you'll be able to see new issue types on the [**Issues**](https://sentry.io/orgredirect/organizations/:orgslug/issues/) page in Sentry. -![Rage click issue](./img/Rage-click-issue-in-issue-stream.png) - -## Prerequisites for Seeing Rage Clicks - -In order to see rage clicks in your issue stream on the **Issues** page, your organization needs to: - -- Be sending [session replay events](/product/explore/session-replay/getting-started/) -- Enable the JavaScript SDK (or framework-specific bundle), version 7.60.1 or higher +## Quota Consumption -While you can enable **session replay** with JavaScript SDK version 7.27.0, or higher, you'll need to have version 7.60.1 or higher in order to be able to see **rage click issues**. +Replay issues do not consume issue quota. -## Detection Criteria - -"Slow clicks" (also called "dead clicks") are only detected on `