Session Replay for Web
Learn about Session Replay and its video-like reproductions of user interactions, which can help you see when users are frustrated and build a better web experience.
Session Replay allows you to see video-like reproductions of user sessions which can help you understand what happened before, during, and after an error or performance issue occurred. You'll be able to gain deeper debugging context into issues so that you can reproduce and resolve problems faster without the guesswork. As you play back each session, you'll be able to see every user interaction in relation to network requests, DOM events, and console messages. It’s effectively like having DevTools active in your production user sessions.
Replays are integrated with other parts of the Sentry product so you can see how the user experience is impacted by errors and slow transactions. You'll see session replays associated with error events on the Issue Details page, and those associated with slow transactions on the Transaction Summary page. For backend error replays, any contributing backend errors will be included in the replay's timeline, breadcrumbs, and errors.
A session replay is not a video recording. It’s a video-like reproduction of a user session, built using the rrweb recording library. Replays are created from snapshots of your web application’s DOM state (the browser’s in-memory representation of HTML). When each snapshot is played back, you will see a video-like recording of what the user did throughout their entire session. The user session includes any pageloads, refreshes, and navigations that happened while the user was on your site.
The start of a session replay recording can be triggered by:
- A user session being part of a sampling rate, as controlled by
replaysSessionSampleRate
. (When a user loads a page, a decision is made whether to sample it or not.) - An error occurring during a session that’s not being recorded. The session is then recorded based on
replaysOnErrorSampleRate
. - Manually calling the
replay.start()
method.
The end of a session replay recording can be triggered by:
- User inactivity within the tab or page that’s being recorded. (It's considered inactivity when a user doesn’t click or navigate around the site for more than 15 minutes. Mouse scrolls, mouse movements, and keyboard events don’t currently qualify as activity.)
- User closing the tab or page that's being recorded.
- A recording reaching the maximum replay duration limit. (Currently, this is 60 minutes.)
- Manually calling the
replay.stop()
method.
Unlike sessions on the Releases page, user sessions in Session Replay can span multiple page loads.
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").