LogRocket Events Table Schema
Events table schema created by the LogRocket Streaming Data Export service
Event Schema
Column Name | Metadata Description | Type |
---|---|---|
event_type | One of: customEvent, reduxAction, click, deadClick, navigation, exception, networkResponse, user, session, inputChange | string |
app_name | The app that all data in the table pertains to | string |
user_id | Unique user identifier either provided during identification or randomly assigned | string |
user_is_anonymous | Anonymous users are given a random unique user ID and can not be identified across sessions | boolean |
user_identity_status | Unknown, Identified, Anonymous | string |
user_name | Name provided for the user during identification | string |
user_email | Email provided for the user during identification | string |
user_traits | JSON string containing an object that maps a single user trait to its value | string |
session_id | Random unique identifier for the session | string |
seq_id | Counter that corresponds to an event in a session. For a given session_id and tab_id pair, subsequent events (rows) that happen in a session have higher seq_ids. | integer |
video_time | Time reported by the browser represented as a unix timestamp | timestamp |
updated_at | Time we ingested the event, represented as a unix timestamp | timestamp |
session_time | Time of the event as reported by the user's device | timestamp |
custom_event_name | Provided name for the custom event | string |
custom_event_string_properties | JSON string containing an object that maps a single custom event property to a list of string values | json |
custom_event_bool_properties | JSON string containing an object that maps a single custom event property to a list of boolean values | json |
custom_event_double_properties | JSON string containing an object that maps a single custom event property to a list of number values | json |
navigation_href | URL of the navigation event | string |
input_change_event_text | New text of the input field | string |
input_change_event_selector | Selector of the input field being changed | string |
click_href | URL of the page where the click occurred | string |
click_text | Text that was clicked (if present) | string |
click_selector | Selector path of the clicked element | string |
redux_action_type | Provided type for the redux action | string |
network_response_event_status | Network status code (200, 404, etc) | integer |
network_response_event_method | GET, POST, PATCH, PUT, DELETE | string |
network_response_event_url | Endpoint URL of the network call | string |
network_response_event_duration | Duration of the network request (in milliseconds) | float |
exception_event_id | string | |
exception_group_id | Number of the group the exception belongs to | string |
exception_culprit | string | |
exception_filename | string | |
exception_message | string | |
exception_event_message | Error message of the exception | string |
exception_exception_type | Label for the exception type (occasionally present) | string |
exception_exception_value | string | |
exception_group_hash | string | |
session_country | Country of the session | string |
session_region | Region of the session | string |
session_city | City of the session | string |
session_ip | IP address of the session | string |
session_device | Desktop, mobile, tablet, etc | string |
session_browser_info_href | Landing page of the session | string |
session_browser_info_code_name | Shorthand name for the browser | string |
session_browser_info_language | en-US, zh-CN, ja-JP, etc | string |
session_browser_info_platform | MacIntel, Linux x86_64, Win32, etc | string |
session_browser_info_useragent | string | |
session_browser_info_version | Chrome 110, Safari 16, Firefox 109, etc | string |
session_browser_info_referrer | URL that drove user to this particular session | string |
session_platform | One of "browserInfo," "deviceInfo," or "none". If "browserInfo" then the browserInfo* columns will be populated. If "deviceInfo" then the deviceInfo* columns will be populated. | string |
session_device_info_device_type | Generally one of "MOBILE", "DESKTOP", "TABLET" | string |
session_device_info_device_name | Google Pixel, iPhone 13, Tablet, etc | string |
session_device_info_manufacturer | string | |
session_device_info_release | string | |
session_device_info_integer_of_cpu_cores | Number of CPU cores of the device | integer |
Format of landed data
Data warehouses & databases (incl. Snowflake, BigQuery, Redshift, Databricks)
Data transferred to data warehouses and relational databases will be loaded as properly typed tables within a single schema.
In addition, a special _transfer_status table will be loaded in the created schema to record transfer metadata, namely, a transfer_last_updated_at timestamp for each table.
Object storage (incl. AWS S3, Google Cloud Storage, Azure Blob Storage)
Data transferred to object storage destinations will be loaded as Apache Parquet files in Apache Hive style partitions. This means data will appear in the following folder structure:
\<bucket_name>/\<folder_name>/logrocket_events/dt=\<transfer_date>/\<transfer_timestamp>.parquet
Where:
\<bucket_name>
and\<folder_name>
are provided during destination configuration.logrocket_events
is the name of the data model being transferred (this is equivalent to a table name in relational data destinations).\<transfer_date>
and\<transfer_timestamp>
are generated at transfer time.
Spreadsheets (incl. Google Sheets)
Data transferred to spreadsheet destinations will be loaded as a newly created tab per data model. Where possible, the tabs will be created as protected tabs (or "read-only") to prevent accidental modification.
Comparison of original data export data to the Streaming Data Export
Old to new schema mappings
Below is a mapping of the old event types to their corresponding column prefixes in the new streaming data export schema. The specific fields will be translated from camel case to snake case.
Old Event Type | New Column Prefix |
---|---|
lr.Metadata | session |
lr.redux.ReduxAction | redux_action |
lr.CustomEvent | custom_event |
lr.network.ResponseEvent | network_response |
lr.ios.TouchEvent | click |
lr.android.TouchEvent | click |
lr.browser.MouseEvent | click |
lr.browser.NavigationEvent | navigation |
lr.browser.InputChangeEvent | input_change |
lr.android.InputChangeEvent | input_change |
lr.ios.InputChangeEvent | input_change |
lr.core.Exception | exception |
Example event names translated to column names
For example, the metadata event below would have the following columns:
{
"type": "lr.Metadata",
"seqID": 9,
"time": 1681406759856,
"tabID": "911d320a-ab31-4b80-9f11-1c5ec1af5e59",
"data": {
"release": "48fc3710a6e3a02c0876f8a456ea8b5deeee34b5",
"sdkVersion": "script",
"scriptVersion": "16.265.0",
"country": "United States",
"region": "Virginia",
"city": "Ashburn",
"browserInfo": {
"href": "https://staging.logrocket.com/pingdom/test",
"codeName": "Mozilla",
},
}
Corresponding column names:
session_release
session_sdk_version
session_script_version
session_country
session_region
session_city
session_browser_info_href
session_browser_info_code_name
Data discrepancies by event type
The following fields for each event type are not present in the new data export stream but were present in the original version of data export.
lr.browser.NavigationEvent
- type
lr.Metadata
- userFingerprint
- sdkVersion
- sdkOptions
- scriptVersion
- scriptSrc
- replayType
- release
- latitude
- longitude
- isInactive
- timeToFirstByte
- initialPageLoadTime
- isLocalhost
lr.network.RequestEvent
This event type does not exist in the new data export stream.
lr.core.Exception
- eventId
- groupId
- culprit
- filename
- message
- eventMessage
- exceptionType
- exceptionValue
- groupHash
- href
Updated over 1 year ago
Curious what questions you can answer with the exported data? We've provided some example queries.