Session replay data with user interactions, browser events, and debugging context
The replays dataset stores session replay data from Sentry, capturing user interactions, browser events, and application state for debugging purposes. It enables developers to replay user sessions and understand issues in context.
The replays dataset captures rich session data including user interactions, DOM mutations, console logs, network requests, and errors. Each replay represents a recorded user session that can be played back for debugging.
timestamp: DateTime # When the segment was received (required)time: DateTime # Alias for timestampreplay_start_timestamp: DateTime # When the replay session started
click_node_id: UInt32 # DOM node IDclick_tag: String # HTML tag nameclick_id: String # Element ID attributeclick_class: Array(String) # CSS classesclick_text: String # Element text contentclick_role: String # ARIA roleclick_alt: String # Alt textclick_testid: String # Test ID attributeclick_aria_label: String # ARIA labelclick_title: String # Title attributeclick_component_name: String # React/Vue component nameclick_is_dead: UInt8 # Dead click indicator (0 or 1)click_is_rage: UInt8 # Rage click indicator (0 or 1)
Dead clicks are clicks that don’t trigger any visible response. Rage clicks are rapid repeated clicks on the same element, often indicating user frustration.
MATCH (replays)SELECT replay_id, replay_start_timestamp, urls, count_urls, arrayJoin(error_ids) as error_idWHERE project_id = 1 AND timestamp >= toDateTime('2024-01-01 00:00:00') AND timestamp < toDateTime('2024-01-02 00:00:00') AND user_id = 'user-123'ORDER BY replay_start_timestamp
MATCH (replays)SELECT browser_name, browser_version, count() as replay_count, sum(count_errors) as total_errorsWHERE project_id = 1 AND timestamp >= toDateTime('2024-01-01 00:00:00') AND timestamp < toDateTime('2024-01-02 00:00:00')GROUP BY browser_name, browser_versionORDER BY replay_count DESC
MATCH (replays)SELECT click_tag, click_text, click_component_name, count() as dead_click_countWHERE project_id = 1 AND timestamp >= toDateTime('2024-01-01 00:00:00') AND timestamp < toDateTime('2024-01-02 00:00:00') AND click_is_dead = 1GROUP BY click_tag, click_text, click_component_nameORDER BY dead_click_count DESCLIMIT 20
MATCH (replays)SELECT release, count(DISTINCT replay_id) as replay_count, sum(count_errors) as error_count, sum(click_is_rage) as rage_clicksWHERE project_id = 1 AND timestamp >= toDateTime('2024-01-01 00:00:00') AND timestamp < toDateTime('2024-01-02 00:00:00')GROUP BY releaseORDER BY replay_count DESC
MATCH (replays)SELECT user_geo_country_code, user_geo_city, count(DISTINCT replay_id) as replays, count(DISTINCT user_id) as unique_usersWHERE project_id = 1 AND timestamp >= toDateTime('2024-01-01 00:00:00') AND timestamp < toDateTime('2024-01-02 00:00:00')GROUP BY user_geo_country_code, user_geo_cityORDER BY replays DESCLIMIT 50
-- Find replay for a specific errorSELECT replay_id, url, replay_start_timestampFROM replaysWHERE project_id = 1 AND has(error_ids, 'specific-error-uuid')ORDER BY timestamp DESCLIMIT 1
-- Find replays for slow transactionsWITH slow_traces AS ( SELECT trace_id FROM transactions WHERE project_id = 1 AND duration > 5000 AND finish_ts >= toDateTime('2024-01-01 00:00:00'))SELECT r.replay_id, r.url, r.browser_nameFROM replays rWHERE r.project_id = 1 AND arrayExists(t -> t IN (SELECT trace_id FROM slow_traces), r.trace_ids)
Watch the exact user session where a bug occurred.Query replays with specific error_ids to find the replay showing the bug, then play back the session to see what led to the error.
Rage Click Detection
Identify UI elements causing user frustration.Find replays with click_is_rage = 1 to discover buttons or elements that aren’t responding as expected.
User Journey Analysis
Understand how users navigate your application.Query the urls array to see the full navigation path and identify where users drop off or encounter issues.
Dead Click Investigation
Find non-responsive UI elements.Query click_is_dead to discover elements that users click but don’t provide feedback, indicating potential UX issues.
Browser-Specific Issues
Isolate problems affecting specific browsers.Group by browser_name and browser_version to find browser-specific bugs with replay examples.
Replays capture user interactions, so privacy is critical:
The Sentry SDK automatically masks sensitive data like passwords, credit card numbers, and personal information before sending replays. Additional privacy controls can be configured in the SDK.
Masking: Text inputs and sensitive elements are masked by default
Blocking: Specific elements can be blocked from recording
User consent: Respect user privacy preferences
Data retention: Configure appropriate retention_days
PII scrubbing: Additional PII can be scrubbed server-side