iOS/tvOS Application Data Collection
After application data is collected to TrueWatch, you can customize scenarios and configure anomaly detection events through the TrueWatch console.
Data Types
The User Access Monitoring of TrueWatch includes six data types:
The RUM data types directly reported by the iOS SDK are view, resource, error, long_task, and action. session is session-dimension data, aggregated based on the RUM data reported by the SDK.
| Type |
Description |
| session |
User session information records. Within the current session, user page, resource, operation, error, and long task related access data will be aggregated based on the session dimension. |
| view |
A view record is generated each time a user accesses a page of the mobile application. When a user stays on the same page, resource, long task, error, and action records are linked to the relevant RUM view via the view_id attribute. |
| resource |
Records of resource information loaded when a user accesses a page. |
| error |
Exceptions or crashes emitted by the mobile application. |
| long_task |
A long task event is generated for any task in the application that blocks the main thread for longer than a specified duration threshold. |
| action |
Records user activities within the mobile application (application startup, clicks, swipes, back, etc.). Each action is attached with a unique action_id. |
Global Attributes
Scenarios for User Access Monitoring and event alerts can be queried using the following global attributes.
SDK Attributes
| Field |
Type |
Description |
sdk_name |
string |
Collector name, fixed names:
df_macos_rum_sdk
df_ios_rum_sdk
df_tvos_rum_sdk
df_android_rum_sdk |
sdk_version |
string |
Collector version information |
sdk_pkg_info |
object |
SDK package information |
Application Attributes
| Field |
Type |
Description |
app_id |
string |
Required. Unique ID identifier for the user access application, automatically generated when creating a monitor in the TrueWatch console. |
application_uuid |
string |
Application UUID, iOS SDK obtains it from the main Mach-O UUID |
env |
string |
Required. Environment field. Attribute values: prod/gray/pre/common/local. Among them: prod: Production environment gray: Gray environment pre: Pre-release environment common: Daily environment local: Local environment |
version |
string |
Required. Version number. |
service |
string |
Optional. Name of the business or service it belongs to. Fixed names:
df_rum_ios
df_rum_tvos
df_rum_android
df_rum_windows
df_rum_linux |
User & Session Attributes
| Field |
Type |
Description |
userid |
string |
Unlogged users use a random uuid as userid, logged-in users use the user id generated by the application backend. |
user_name |
string |
Optional. User name. |
user_email |
string |
Optional. User email. |
session_id |
string |
Session id. A new session_id is generated after no operation for more than 15 minutes. |
session_type |
string |
Session type. Reference values: user & synthetics user: Data generated by RUM functionality; synthetics: Data generated by headless testing. |
is_signin |
boolean |
Whether it is a registered user. Attribute values: T & F. |
session_has_replay |
boolean |
Whether the current session is associated with Session Replay data. After enabling Session Replay related capabilities, this field can be written for View, Resource, Error, Long Task, and Action. |
custom_keys |
string |
RUM custom attribute key list |
Device & Resolution Attributes
| Field |
Type |
Description |
device |
string |
Mobile device manufacturer |
model |
string |
Mobile device model |
device_uuid |
string |
Mobile device unique ID, generated using UIDevice.identifierForVendor |
os |
string |
Operating system information |
os_version |
string |
Operating system version |
os_version_major |
string |
Operating system major version |
screen_size |
string |
Screen resolution |
arch |
string |
CPU architecture, e.g., arm64, arm64e, x86_64 |
Geographic & Network Attributes
| Field |
Type |
Description |
ip |
string |
User access IP address |
isp |
string |
Internet Service Provider |
network_type |
string |
Network connection type. Attribute value reference: wifi & 2g & 3g & 4g & 5g & unknown (unknown network) & unreachable (network unavailable) |
country |
string |
Country |
country_iso_code |
string |
Country iso_code |
province |
string |
Province |
city |
string |
City |
Custom Attributes
In addition to global attributes, scenarios can be built and event alerts configured through custom attributes (SDK supports users adding custom tag data). Custom attributes are non-global attributes. Through custom attributes, you can track the entire process of user access to the application, locate and discover affected user access situations, and monitor user access performance.
Other Data Type Attributes
Session
Session is session-dimension data, typically generated or aggregated by the server based on RUM data reported by the SDK, not a measurement directly reported separately by the iOS SDK.
Attributes
| Field |
Type |
Description |
session_id |
string |
Session id |
session_type |
string |
Session type. Reference values: user & synthetics user: Data generated by RUM functionality; synthetics: Data generated by headless testing. |
session_referrer |
string |
Session referrer. Usually records the source page address. |
session_first_view_id |
string |
The view_id of the first page in the current session |
session_first_view_name |
string |
The URL of the first page in the current session |
session_last_view_id |
string |
The view_id of the last accessed page in the current session |
session_last_view_name |
string |
The URL of the last page in the current session |
Statistical Metrics
| Field |
Type |
Description |
time_spent |
number(ns) |
Duration of the current session |
session_view_count |
number |
Number of view_ids associated with the current session |
session_error_count |
number |
Number of errors generated in the current session |
session_resource_count |
number |
Number of resources loaded in the current session |
session_action_count |
number |
Number of user operations in the current session |
session_long_task_count |
number |
Number of long tasks generated in the current session |
View
Attributes
| Field |
Type |
Description |
view_id |
string |
Unique ID generated each time a page is accessed |
view_referrer |
string |
Page referrer, the parent of the page |
view_name |
string |
Page name |
session_has_replay |
boolean |
Whether the session to which the current View belongs is associated with Session Replay data |
Metrics
| Field |
Type |
Description |
loading_time |
number(ns) |
Page loading time |
time_spent |
number(ns) |
Page dwell time |
is_active |
boolean |
Determines whether the user is still active. Reference values: true & false |
session_sample_rate |
number |
RUM Session sampling rate |
session_on_error_sample_rate |
number |
Sampling rate for supplementary sampling after an error occurs when RUM Session sampling is not hit |
session_replay_sample_rate |
number |
Session Replay sampling rate, appears after enabling Session Replay related capabilities |
session_replay_on_error_sample_rate |
number |
Sampling rate for supplementary sampling of Session Replay after an error occurs, appears after enabling Session Replay related capabilities |
sampled_for_error_session |
boolean |
Whether the current Session was sampled due to the error sampling strategy |
sampled_for_error_replay |
boolean |
Whether the current Session Replay was sampled due to the error sampling strategy |
session_error_timestamp |
number(ns) |
The time when the error occurred when error sampling was hit |
session_replay_stats |
object |
Session Replay statistical information associated with the current View |
Statistical Metrics
| Field |
Type |
Description |
view_error_count |
number |
Number of errors that occurred during each page load |
view_resource_count |
number |
Number of resources requested during each page load |
view_long_task_count |
number |
Number of long tasks generated during each page load |
view_action_count |
number |
Number of operations performed during page viewing |
view_update_time |
number |
Number of View updates |
view_long_task_rate |
number |
Proportion of time spent on long tasks during the View period |
Monitoring Metrics
| Field |
Type |
Description |
cpu_tick_count |
number |
Optional. Number of CPU ticks for this page |
cpu_tick_count_per_second |
number |
Optional. Average number of CPU ticks per second |
fps_avg |
number |
Optional. Average frames per second for the page |
fps_mini |
number |
Optional. Minimum frames per second for the page |
memory_avg |
number |
Optional. Average memory usage for the page |
memory_max |
number |
Optional. Peak memory usage for the page |
Resource
View Attributes
| Field |
Type |
Description |
view_id |
string |
Unique ID generated each time a page is accessed |
view_referrer |
string |
Page referrer, the parent of the page |
view_name |
string |
Page name |
Action Attributes
| Field |
Type |
Description |
action_id |
string |
Unique ID generated when a user performs a page operation |
action_name |
string |
Operation name |
action_type |
string |
Operation type (cold/hot start, click, etc.) |
Resource Attributes
| Field |
Type |
Description |
resource_url |
string |
Resource URL |
resource_url_host |
string |
Domain part of the resource URL |
resource_url_path |
string |
Path part of the resource URL |
resource_url_query |
string |
Query part of the resource URL |
resource_url_path_group |
string |
Resource URL path grouping |
resource_type |
string |
Resource category |
resource_method |
string |
Resource request method |
resource_status |
string |
Status value returned by the resource request |
resource_status_group |
string |
Grouped status value returned by the resource request |
resource_host_ip |
string |
Target IP address accessed by the resource URL |
resource_id |
string |
Unique ID for the resource request |
response_connection |
string |
Value of the response header Connection |
response_content_type |
string |
Value of the response header Content-Type |
response_content_encoding |
string |
Value of the response header Content-Encoding |
span_id |
string |
Associated span id for the trace |
trace_id |
string |
Associated trace id for the trace |
session_has_replay |
boolean |
Whether the session to which the current Resource belongs is associated with Session Replay data |
Metrics
| Field |
Type |
Description |
resource_size |
number |
Resource size, default unit: byte |
resource_request_size |
number |
Resource request size, default unit: byte |
resource_dns |
number(ns) |
DNS resolution time for resource loading Calculation: domainLookupEnd - domainLookupStart |
resource_tcp |
number(ns) |
TCP connection time for resource loading Calculation: connectEnd - connectStart |
resource_ssl |
number(ns) |
SSL connection time for resource loading Calculation: connectEnd - secureConnectStart |
resource_ttfb |
number(ns) |
Request-response time for resource loading Calculation: responseStart - requestStart |
resource_trans |
number(ns) |
Content transmission time for resource loading Calculation: responseEnd - responseStart |
resource_first_byte |
number(ns) |
First byte time for resource loading Calculation: responseStart - domainLookupStart |
duration |
number(ns) |
Resource loading time Calculation: duration(responseEnd-startTime) |
resource_dns_time |
object |
DNS phase duration, structure: {start, duration} |
resource_connect_time |
object |
TCP connection phase duration, structure: {start, duration} |
resource_first_byte_time |
object |
First byte phase duration, structure: {start, duration} |
resource_ssl_time |
object |
SSL phase duration, structure: {start, duration} |
resource_download_time |
object |
Download phase duration, structure: {start, duration} |
resource_redirect_time |
object |
Redirect phase duration, structure: {start, duration} |
resource_http_protocol |
string |
Network protocol used for the resource request |
resource_connection_reuse |
boolean |
Whether the resource request reused a connection |
request_header |
string |
Resource request header |
response_header |
string |
Resource response header |
Network Snapshot
| Field |
Type |
Description |
network_available |
boolean |
Whether the network was available at the start of the Resource |
Error
View Attributes
| Field |
Type |
Description |
view_id |
string |
Unique ID generated each time a page is accessed |
view_referrer |
string |
Page referrer, the parent of the page |
view_name |
string |
Page name |
Action Attributes
| Field |
Type |
Description |
action_id |
string |
Unique ID generated when a user performs a page operation |
action_name |
string |
Operation name |
Error Attributes
| Field |
Type |
Description |
error_source |
string |
Error source. Reference values: logger & network |
error_type |
string |
Error type logger error type: anr_error | ios_crash network error type: network_error |
error_situation |
string |
Timing of the error occurrence. Reference values: startup and run |
session_has_replay |
boolean |
Whether the session to which the current Error belongs is associated with Session Replay data |
When type=network, the following Network Error attributes are added.
| Field |
Type |
Description |
resource_id |
string |
Unique ID for the resource request |
resource_status |
string |
Status value returned by the resource request |
resource_url |
string |
Resource URL |
resource_url_host |
string |
Domain part of the resource URL |
resource_url_path |
string |
Path part of the resource URL |
resource_url_path_group |
string |
Resource URL path grouping |
resource_status_group |
string |
Grouped status value returned by the resource request |
resource_method |
string |
Resource request method |
Error Monitoring Attributes
| Field |
Type |
Description |
memory_total |
string |
Optional. Total memory |
memory_use |
number |
Optional. Memory usage rate |
cpu_use |
number |
Optional. CPU usage rate |
battery_use |
number |
Optional. Current phone battery level (tvOS not supported) |
carrier |
string |
Optional. Carrier information (iOS supported) |
locale |
string |
Current system language |
Metrics
| Field |
Type |
Description |
error_message |
string |
Error message |
error_stack |
string |
Error stack trace |
foreground_crash_free_duration |
number(ns) |
Crash-free duration the application was in the foreground before the Crash occurred |
background_crash_free_duration |
number(ns) |
Crash-free duration the application was in the background before the Crash occurred |
crash_extra |
object |
Crash extra information, such as register information |
Long Task
View Attributes
| Field |
Type |
Description |
view_id |
string |
Unique ID generated each time a page is accessed |
view_referrer |
string |
Page referrer, the parent of the page |
view_name |
string |
Page name |
Action Attributes
| Field |
Type |
Description |
action_id |
string |
Unique ID generated when a user performs a page operation |
action_name |
string |
Operation name |
Metrics
| Field |
Type |
Description |
duration |
number(ns) |
Freeze duration |
long_task_stack |
string |
Freeze stack trace |
session_has_replay |
boolean |
Whether the session to which the current Long Task belongs is associated with Session Replay data |
Action
View Attributes
| Field |
Type |
Description |
view_id |
string |
Unique ID generated each time a page is accessed |
view_referrer |
string |
Page referrer, the parent of the page |
view_name |
string |
Page name |
Action Attributes
| Field |
Type |
Description |
action_id |
string |
Unique ID generated when a user performs a page operation |
action_name |
string |
Operation name. Default startup Actions include app_hot_start, app_cold_start, app_warm_start |
action_type |
string |
Operation type. Reference values include: click, launch_hot, launch_cold, launch_warm |
session_has_replay |
boolean |
Whether the session to which the current Action belongs is associated with Session Replay data |
Metrics
| Field |
Type |
Description |
duration |
number(ns) |
Time spent on the page operation |
app_pre_runtime_init_time |
object |
Startup phase metric, time before runtime initialization, structure: {start, duration} |
app_runtime_init_time |
object |
Startup phase metric, runtime initialization time, structure: {start, duration} |
app_uikit_init_time |
object |
Startup phase metric, UIKit initialization time, structure: {start, duration} |
app_application_init_time |
object |
Startup phase metric, Application initialization time, structure: {start, duration} |
app_first_frame_init_time |
object |
Startup phase metric, first frame rendering time, structure: {start, duration} |
app_launch_type |
string |
Cold start type, reported only when action_type=launch_cold. Reference values: foreground, background |
Statistical Metrics
| Field |
Type |
Description |
action_long_task_count |
number |
Number of long tasks associated with the operation |
action_resource_count |
number |
Number of resource requests associated with the operation |
action_error_count |
number |
Number of errors associated with the operation |
WebView Association
When WebView JSBridge data is integrated into RUM, the SDK will supplement is_web_view=true on the corresponding data to identify that the data comes from WebView. WebView data fields are primarily based on the fields reported by the Web SDK. This association note is only retained in the native iOS field table.