This topic describes the data in User Experience Monitoring logs.
Overview
User experience monitoring logs contain detailed tables and aggregate tables.
Details tables: View, Resource, Exception, Action, Custom, Application, and System.
Aggregate table: Session table
The Application and System tables are used only by native App Monitoring.
Terms
Attribute: an index, which is generally of the String type. It is used to group, filter, and aggregate data. It cannot be quantified but has limited enumerability and indexes.
Measure: an index, which is of the number type and can be quantified.
Metadata: the default non-index, which is used to describe data, mainly describes the information of data attributes.
Common attributes
Public properties need to be indexed and are an important part of data filtering and aggregation. They will exist in both parts tables and aggregate tables. In most cases, the value of a common property for a session ID is the same. However, the value of a common property may be different. For example, the value of a common property for a session ID may be different after the account is switched.
Attribute | Type | Metric | Description |
timestamp | long | Occurred At | The start time of the event. If no time is available, the system time is used. |
event_type | string | Event types | view, resource, exception, longtask, action, custom, and aggregate table session. |
event_id | string | The ID of the event. | resource, exception, longtask, action, and custom except view and session. |
app.id | string | Application ID | Create a unique application ID generated by the RUM application. |
app.version | string | Application version | User-defined version number. |
app.channel | string | Application Channel | Application channels. |
app.env | string | Environment information | The environment type, which is used to distinguish between production pords (default), grayscale, and pre-release. |
app.type | string | The type of the application. | The type of the application when the corresponding user creates the application, which is specified by both Reports and Data Streams. Valid values:
|
app.package | string | The name of the specified application package. | Package has different definitions for different platforms:
|
user.id | string | The ID of the user. | The ID of the user. This parameter can be passed in when you initialize the SDK. If you do not configure the SDK, it is randomly generated. |
user.name | string | The name of the user. | The name of the user. You need to customize the configuration. |
user.tags | string | The tags of the user. | The label of the user. |
device.id | string | The device ID. | The device ID. |
device.type | string | The device type. | The device type reported by the device, for example, mobile phone, PC. |
device.brand | string | The brand of a device. | The device brand reported by the device, for example, Mac, iPad, Huawei, and Xiaomi. |
device.model | string | The device model. | Device model reported by the device. |
device.name | string | The name of the device. | The device name reported by the device. |
os.type | string | Supported operating systems | The operating system name reported by the device. |
os.version | string | Operating system version | The operating system version reported by the device. |
os.container | string | Container Type | Examples: Chrome, WeChat mini program, and App (application name). |
os.container_version | string | Container version | For example, the version of Chrome. |
geo.country | string | Country or region | The country name. |
geo.country_id | string | National ISO | The ISO code of the country. |
geo.province | string | Province /Region | The name of the province or region. |
geo.province_id | string | The region. Code | The code of the province or region. |
geo.city | string | The city. | The city name. |
geo.city_id | string | The city. Code | The city code. |
isp.id | string | The ID of the service provider. | The ID of the carrier. |
isp.name | string | The ISP name. | The ISP name. |
net.model | string | Access modes | Network access method: 2G, 3G, 4G, 5G, WIFI, Unknown, etc., based on the specific platform information. |
net.name | string | Network Name | The Ethernet name. |
Public Measure
Metric | Type | Description |
times | int | The number of times that the event occurs. Default value: 1. |
Public Metadata
Parameter | Type | Description |
os.user_agent | string | The report request header. |
net.ip | string | Client IP address |
device.sr | string | The screen resolution. |
os.container_vp | string | The resolution of the page size. |
Schedule Design
View table
An interactive user view that focuses on page view and related performance data. View is a classification of views and is divided into:
PV: used to calculate the number of views accessed. Each time a view is accessed, the PV must be reported. It is the basic data that is associated with various events and calculates various time series metrics.
Webvitals: based on the three major indicators of view performance proposed by Google. Due to the large difference in collection timing and clear standard boundaries, separate storage is adopted.
Perf: a common performance data of views, which is a relatively miscellaneous indicator category. Based on the Perfmonce standard, this type focuses on the objective performance of the page, and the performance that can be changed subjectively is not included ().
NoteLook at the performance of subjective changes such as: page stay duration. From a definition point of view, the page stay duration is a kind of user behavior data, which is more reasonable to manage in Action.
Webvitals and Perf are optional reporting types, and native views may not be applicable.
Attributes
Attribute | Type | Metric | Description |
session.id | string | The session ID. | The associated session. |
view.id | string | View ID | A randomly generated ID for each page view. |
view.name | string | View name | The alias of a type of view is the path part of the URL by default, which can be matched based on rules or configured by users. |
view.loading_type | string | View loading mode | View Load Type:
|
view.type | string | View Event Types | View Event Type:
|
view.view_type | string | View Rendering Type | - |
Measures
Property | Type | Metric | Description |
view.time_spent | long (ms) | Page | Time spent on the current view. |
view.largest_contentful_paint | long (ms) | Maximum Content Rendering Duration | The moment in the page load timeline at which the largest DOM object in view (visible on the screen) is rendered. Greater than 2.5 seconds is marked as slow. |
view.first_input_delay | long (ms) | First Input Delay Duration | The time elapsed between the user's first interaction with the page and the browser's response. |
view.cumulative_layout_shift | long | Cumulative Layout Configuration Offset | Quantifies unexpected page movement due to dynamically loaded content, such as third-party ads, where 0 means no change has occurred. |
view.first_contentful_paint | long (ms) | The duration of the first content rendering (white screen time) | The time when the FCP browser first renders the text, image (including the background image), non-white Canvas, or SVG. |
view.dom_interactive | long (ms) | The Time to Interactive (TTI). | The time when the content can be interacted. |
view.dom_content_loaded | long (ms) | HTML Full Load Time (DOM Ready Duration) | event is fired when the initial HTML document is fully loaded and parsed without waiting for non-rendering blocking stylesheets, images, and subframes to finish loading. |
view.dom_complete | long (ms) | DOM | The page and all child resources are ready. Rotation has been stopped for user Loading. |
view.load_event | long (ms) | The time consumed to completely load the page. | The event that fires when the page is fully loaded. Usually triggers for additional application logic. Note Page load times of less than 2 seconds are considered good, and up to 4 seconds are acceptable. A page loading time of more than 5 seconds not only affects the search engine ranking of the website, but also seriously affects the user experience. |
Metadata
Attribute | Type | Description |
view.referrer | string | The URL of the previous web page from which to link to the currently requested page. |
view.url | string | The URL corresponding to the view. The complete URL contains the scheme protocol, host, path, query, and hash parts. |
view.timing_data | string | The PerformanceResourceTiming JSONString. |
view.snapshots | string | View snapshot JSONString, which is mainly used for native apps. |
Resource table
Resource events are generalized for network requests and are a RUM event type developed based on the HTTP protocol and the Perfmonce standard. Because Perfmonce has many differences in different platform environments, RUM has made corrections for these differences.
From the perspective of business and habits, resources are divided into two categories: static resources and APIs. In essence, static resources and APIs are the same. They are resources requested by HTTP, but there are major differences in concerns, as follows:
Static resources (resource.type is css, javascript, image, media, etc.) focus on resource type, Alibaba Cloud Content Delivery Network, network stability, etc. If the resource.type parameter is set to navigation, the resource data of the associated view (with the same view.id) is returned.
APIs (resource.type is XHR, fetch, and API) pay more attention to the association with the server, such as response codes and response content, and have strong association with tracing.
XHR and fetch mainly occur in browsers and WebViews, or in scenarios with similar regularity.
API is the default value when you are unsure of the API type, which is common in native and applet cases.
In most cases, a resource only focuses on the actual network request, and does not report the recommend filter before reporting the information obtained from the cache. For situations that do have reporting value (such as calculating the cache hit ratio and resource usage), you need to cache mark this type to distinguish the resources that initiate network requests.
Attributes
Property | Type | Description |
session.id | string | The associated session. |
view.id | string | The associated view. |
view.name | string | The associated view.name. |
resource.type | string | The type of the collected resource. For example, css, javascript, media, XHR, image, and navigation. Note If the resource type is XHR or fetch, the resource type is considered an API. |
resource.method | string | The HTTP request method. such as POST and GET. |
resource.status_code | string | Resource status code. |
resource.message | string | The content of the returned result when a common error occurs, corresponding to the resource.error_msg. |
resource.url | string | The URL of the resource. |
resource.name | string | The default value is the Path part of the URL, which can be matched based on rules or actively configured by users. |
resource.provider_type | string | The type of the resource provider. Such as: first-party, Alibaba Cloud Content Delivery Network, ad, analytics. |
resource.trace_id | string | The TraceID of the resource request. |
Measure
Metric | Type | Description |
resource.success | number | Whether the resource is loaded successfully:
|
resource.duration | long (ms) | Total time spent loading the resource. Calculation formula: responseEnd-redirectStart |
resource.size | long (bytes) | The size of the resource, which corresponds to the decodedBodySize. |
resource.connect_duration | long (ms) | The time taken to establish a connection with the server. Calculation formula: connectEnd-connectStart |
resource.ssl_duration | long (ms) | Time spent on TLS handshake. This metric does not appear if the last request is not over HTTPS. Calculation formula: connectEnd - secureConnectionStart If the value of secureConnectionStart is 0, the SSL connection is not initiated. In this case, ssl_duration is not calculated, and the value of ssl_duration is 0. |
resource.dns_duration | long (ms) | The time it took to resolve the DNS name of the last request. Calculation formula: domainLookupEnd - domainLookupStart |
resource.redirect_duration | long (ms) | The time when the HTTP request was redirected. Calculation formula: redirectEnd-redirectStart |
resource.first_byte_duration | long (ms) | The TTFB indicates the period from the time when the browser makes the request to the time when the browser receives the first byte of the page. Calculation formula: responseStart-requestStart |
resource.download_duration | long (ms) | The time taken to download the response. Calculation formula: responseEnd-responseStart |
Metadata
Property | Type | Description |
resource.timing_data | string | The PerformanceResourceTiming JSONString. |
resource.trace_data | string | Tracing Analysis information snapshot:
|
resource.snapshots | string | View snapshots, which are primarily used for native app inclusion.
|
resource.node_name | string | The type of the DOM that initiates the request. |
resource.xpath | string | The location where the xpath occurs. html. > body. > img. |
resource.provider_name | string | The name of the resource provider. Default value: unknown. |
resource.provider_domain | string | The domain name of the resource provider. |
Exception table
An exception is an unexpected occurrence during code execution.
Crash: The application crashes.
ANR: The Android application does not respond (Application No Responding). If a specific message (such as Key Dispatch, Broadcast, and Service) is not processed within the specified time within the UI thread (main thread) of the application, an ANR exception will be triggered. By definition, ANR has all the characteristics of an exception and is a type of Exception, not LongTask.
Exception: no other exceptions that cause Crash or ANR.
Custom: the custom error that is reported by the user.
Error: mainly used to record JavaScript-related errors.
Blank: used for white screen monitoring, mainly for the white screen situation under the browser.
Attributes
Property | Type | Description |
session.id | string | The associated session. |
view.id | string | The associated view. |
view.name | string | The associated view.name. |
exception.source | string | The source of the error. Examples: console and event. |
exception.file | string | The error file. |
exception.type | string | Error types include:
|
exception.subtype | string | is a level 2 category of the wrong type |
exception.name | string | The error. |
exception.message | string | A concise and readable message that explains the event. |
Metadata
Property | Type | Description |
exception.stack | string | Stack trace or supplemental information about the error. |
exception.caused_by | string | The cause of the error. |
exception.line | long | The number of lines of code where the exception occurred. |
exception.column | long | The number of columns in the code where the exception occurred. |
exception.thread_id | string | The thread ID. |
exception.binary_images | string | The source of the error. |
exception.snapshots | string | Error snapshot. |
Action table
Attributes
Properties | Type | Description |
session.id | string | The associated session. |
view.id | string | The associated view. |
view.name | string | The associated view.name. |
action.type | string | The type of user behavior. |
action.name | string | The semantic name. For example, click# checkout. |
action.target_name | string | The element with which the user interacts. For actions that are automatically collected only. |
Measure
Metric | Type | Description |
action.duration | long (ms) | The duration of the behavior. |
Metadata
Property | Type | Description |
action.snapshots | string | Behavior snapshots. |
action.method_info | string | Behavior callback. Example: onClick(). |
Custom table
Attributes
Property | Type | Description |
session.id | string | The associated session. |
view.id | string | The associated view. |
view.name | string | The associated view.name. |
custom.type | string | The custom type. |
custom.name | string | Enter a custom name for the event. |
custom.group | string | The custom event group. |
Measure
Property | Type | Description |
custom.value | number | The custom event group. |
Metadata
Property | Type | Description |
custom.snapshots | string | The characters in length can be up to 5000 characters in length. |
Application table
Application-level events, such as cold and hot start, application exit, and application cut-out and cut-in.
Attributes
Property | Type | Description |
session.id | string | The associated session. |
application.type | string | Enumeration type:
|
application.name | string | As a fine-grained type of application.type, such as:
|
Measure
Metric | Type | Description |
application.duration | long(ms) | The duration of the corresponding application event type. |
Metadata
Property | Type | Description |
application.snapshots | string | The snapshot data of the application startup event, which is generally a thread method. |
System table
Attributes
Properties | Type | Description |
session.id | string | The associated session. |
system.type | string | The type of user behavior. |
system.name | string | The semantic name. For example, click# checkout. |
Metadata
Properties | Type | Description |
system.snapshots | string |
|
Aggregate Table Design
Session table
Attributes
Attribute | Type | Description |
session.id | string | A randomly generated ID for each session. |
session.ip | string | The IP addresses of the client. |
session.referrer | string | The URL of the previous web page from which to link to the currently requested page. |
session.initial_view_id | string | The first view ID generated by the user. |
session.initial_view_name | string | The first user-generated View Name. |
session.last_view_id | string | The last View ID generated by the user. |
session.last_view_name | string | The last View Name generated by the user. |
session.start | long | The start timestamp of the session. |
session.end | long | The end timestamp of the session. |
Metadata
Property | Type | Description |
session.initial_view.url | string | The first View URL generated by the user. |
session.last_view_url | string | The last View URL generated by the user. |
Measure
Metric | Measurement | Index name | Description |
session.time_spent | long (ms) | Session Duration | The duration of the user session. |
session.view_count | long | Number of views | All views collected for this session. |
session.exception_count | long | Abnormal quantity | A count of all exceptions collected for this session. |
session.resource_count | long | Number of resource requests | A count of all resources collected for this session. |
session.resource_error_count | long | Number of resource errors | A count of all error resources collected for this session. |
session.api_count | long | Number of API requests | A count of all API requests collected for this session. |
session.api_error_count | long | Number of API errors | A count of all API request errors collected for this session. |
session.action_count | long | Number of user events | A count of all operations collected for this session. |
session.long_task_count | long | Catton times | A count of all long tasks collected for this session. |