Data Collected

SDK


Overview

The RUM Browser SDK generates events that have associated telemetry and attributes. Every RUM event has all of the default attributes, for example, the URL of the page (view.url) and user information such as their device type (device.type) and their country (geo.country).

There are additional attributes specific to a given event type. For example, the view.loading_time telemetry is associated with view events, and the resource.method attribute is associated with resource events.

Event TypeRetentionDescription
Session30 daysA user session begins when a user starts browsing the web application. It contains high-level information about the user (browser, device, geo-location). It aggregates all RUM events collected during the user journey with a unique session.id attribute. Note: The session resets after 15 minutes of inactivity.
View30 daysA view event is generated each time a user visits a page of the web application. While the user remains on the same page, resource, long-task, error, and action events are linked to the related RUM view with the view.id attribute.
Resource15 daysA resource event is generated for images, XHR, Fetch, CSS, or JS libraries loaded on a web page. It includes detailed loading timing information.
Long Task15 daysA long task event is generated for any task in the browser that blocks the main thread for more than 50ms.
Error30 daysRUM collects every frontend error emitted by the browser.
Action30 daysRUM action events track user interactions during a user journey and can also be manually sent to monitor custom user actions.

The following diagram illustrates the RUM event hierarchy:

RUM Event hierarchy

Default attributes

See a complete list of Standard Attributes for RUM Browser. By default, the attributes are attached to each event type, so you can use them regardless of the RUM event type being queried.

Event-specific attributes

Session attributes

AttributeTypeDescription
session.time_spentnumber (ns)Duration of the user session.
session.view.countnumberCount of all views collected for this session.
session.error.countnumberCount of all errors collected for this session.
session.resource.countnumberCount of all resources collected for this session.
session.action.countnumberCount of all actions collected for this session.
session.long_task.countnumberCount of all long tasks collected for this session.

Session attributes

Attribute nameTypeDescription
session.idstringRandomly generated ID for each session.
session.ipstringClient IP address. If you want to stop collecting this attribute, change the setting in your application details.
session.is_activeBooleanIndicates if the session is currently active. The session ends after 4 hours of activity or 15 minutes of inactivity.
session.typestringThe type of session: user or synthetics. Sessions from Synthetic Monitoring Browser Tests are excluded from billing.
session.referrerstringThe URL of the previous web page from which a link to the currently requested page was followed.
session.initial_view.idstringThe ID of the first RUM view generated by the user.
session.initial_view.url_hoststringThe host part of the URL.
session.initial_view.url_pathstringThe path part of the URL.
session.initial_view.url_path_groupstringThe automatic URL group generated for similar URLs (for example, /dashboard/? for /dashboard/123 and /dashboard/456).
session.initial_view.url_queryobjectThe query string parts of the URL decomposed as query params key-value attributes.
session.initial_view.url_schemeobjectThe scheme part of the URL.
session.last_view.idstringThe ID of the last RUM view generated by the user.
session.last_view.url_hoststringThe host part of the URL.
session.last_view.url_pathstringThe path part of the URL.
session.last_view.url_path_groupstringThe automatic URL group generated for similar URLs (for example, /dashboard/? for /dashboard/123 and /dashboard/456).
session.last_view.url_queryobjectThe query string parts of the URL decomposed as query params key-value attributes.
session.last_view.url_schemeobjectThe scheme part of the URL.

View timing attributes

Note: View timing telemetry includes time that a page is open in the background.

AttributeTypeDescription
view.time_spentnumber (ns)Time spent on the current view.
view.first_bytenumber (ns)Time elapsed until the first byte of the view has been received.
view.largest_contentful_paintnumber (ns)Time in the page load where the largest DOM object in the viewport (visible on screen) is rendered.
view.largest_contentful_paint_target_selectorstring (CSS selector)CSS Selector of the element corresponding to the largest contentful paint.
view.first_input_delaynumber (ns)Time elapsed between a user's first interaction with the page and the browser's response.
view.first_input_delay_target_selectorstring (CSS selector)CSS selector of the first element the user interacted with.
view.interaction_to_next_paintnumber (ns)Longest duration between a user's interaction with the page and the next paint.
view.interaction_to_next_paint_target_selectorstring (CSS selector)CSS selector of the element associated with the longest interaction to the next paint.
view.cumulative_layout_shiftnumberQuantifies unexpected page movement due to dynamically loaded content (for example, third-party ads) where 0 means that no shifts are happening.
view.cumulative_layout_shift_target_selectorstring (CSS selector)CSS selector of the most shifted element contributing to the page CLS.
view.loading_timenumber (ns)Time until the page is ready and no network request or DOM mutation is currently occurring. More info from Monitoring Page Performance.
view.first_contentful_paintnumber (ns)Time when the browser first renders any text, image (including background images), non-white canvas, or SVG. For more information about browser rendering, see the w3c definition.
view.dom_interactivenumber (ns)Time until the parser finishes its work on the main document. More info from the MDN documentation.
view.dom_content_loadednumber (ns)Time until the load event is fired and the initial HTML document is completely loaded and parsed, without waiting for non-render blocking stylesheets, images, and subframes to finish loading. More info from the MDN documentation.
view.dom_completenumber (ns)Time until the page and all of the subresources are ready. The loading spinner has stopped spinning for the user. More info from the MDN documentation.
view.load_eventnumber (ns)Time until the load event is fired, indicating the page is fully loaded. Usually a trigger for additional application logic. More info from the MDN documentation.
view.error.countnumberCount of all errors collected for this view.
view.long_task.countnumberCount of all long tasks collected for this view.
view.resource.countnumberCount of all resources collected for this view.
view.action.countnumberCount of all actions collected for this view.

Resource timing attributes

Detailed network timing data for the loading of an application's resources are collected with the Performance Resource Timing API.

AttributeTypeDescription
resource.durationnumberEntire time spent loading the resource.
resource.sizenumber (bytes)Resource size.
resource.connect.durationnumber (ns)Time spent establishing a connection to the server (connectEnd - connectStart).
resource.ssl.durationnumber (ns)Time spent for the TLS handshake. If the last request is not over HTTPS, this attribute does not appear (connectEnd - secureConnectionStart).
resource.dns.durationnumber (ns)Time spent resolving the DNS name of the last request (domainLookupEnd - domainLookupStart).
resource.redirect.durationnumber (ns)Time spent on subsequent HTTP requests (redirectEnd - redirectStart).
resource.first_byte.durationnumber (ns)Time spent waiting for the first byte of response to be received (responseStart - RequestStart).
resource.download.durationnumber (ns)Time spent downloading the response (responseEnd - responseStart).

Resource attributes

AttributeTypeDescription
resource.typestringThe type of resource being collected (for example, css, javascript, media, XHR, or image).
resource.methodstringThe HTTP method (for example POST or GET).
resource.status_codenumberThe response status code (available for fetch/XHR resources only).
resource.urlstringThe resource URL.
resource.url_hoststringThe host part of the URL.
resource.url_pathstringThe path part of the URL.
resource.url_queryobjectThe query string parts of the URL decomposed as query params key-value attributes.
resource.url_schemestringThe protocol name of the URL (HTTP or HTTPS).
resource.provider.namestringThe resource provider name. Default is unknown.
resource.provider.domainstringThe resource provider domain.
resource.provider.typestringThe resource provider type (for example, first-party, cdn, ad, or analytics).

GraphQL attributes

For GraphQL requests configured in allowedGraphQlUrls, additional metadata is automatically collected. See Track GraphQL requests for configuration details.

AttributeTypeDescription
resource.graphql.operation_typestringThe GraphQL operation type: query, mutation, or subscription.
resource.graphql.operation_namestringThe GraphQL operation name, if provided in the request.
resource.graphql.variablesstringThe GraphQL variables sent with the request.
resource.graphql.payloadstringThe GraphQL query (limited to 32 KB, available only if trackPayload is enabled).
resource.graphql.errors_countnumberNumber of errors returned in the GraphQL response (available only if trackResponseErrors is enabled).
resource.graphql.errorsarrayArray of GraphQL errors with message, code, locations, and path (available only if trackResponseErrors is enabled).

Long task timing attributes

AttributeTypeDescription
long_task.durationnumberDuration of the long task.

Error attributes

AttributeTypeDescription
error.sourcestringWhere the error originates from (for example, console). See Error sources.
error.typestringThe error type (or error code in some cases).
error.messagestringA concise, human-readable, one-line message explaining the event.
error.stackstringThe stack trace or complementary information about the error.

Source errors

Source errors include code-level information about the error. For more information about different error types, see the MDN documentation.

AttributeTypeDescription
error.typestringThe error type (or error code in some cases).

Action timing attributes

AttributeTypeDescription
action.loading_timenumber (ns)The loading time of the action. See how it is calculated in the Tracking User Actions documentation.
action.long_task.countnumberCount of all long tasks collected for this action.
action.resource.countnumberCount of all resources collected for this action.
action.error.countnumberCount of all errors collected for this action.

Action attributes

AttributeTypeDescription
action.idstringUUID of the user action.
action.typestringType of the user action. For Custom User Actions, it is set to custom.
action.target.namestringElement that the user interacted with. Only for automatically collected actions.
action.namestringUser-friendly name created (for example, Click on #checkout). For Custom User Actions, the action name given in the API call.

Frustration signals fields

FieldTypeDescription
session.frustration.countnumberCount of all frustration signals associated with one session.
view.frustration.countnumberCount of all frustration signals associated with one view.
action.frustration.type:dead_clickstringThe dead clicks detected by the RUM Browser SDK.
action.frustration.type:rage_clickstringThe rage clicks detected by the RUM Browser SDK.
action.frustration.type:error_clickstringThe error clicks detected by the RUM Browser SDK.

UTM attributes

FieldTypeDescription
view.url_query.utm_sourcestringThe parameter in the URL tracking the source of traffic.
view.url_query.utm_mediumstringThe parameter in the URL tracking the channel where the traffic is coming from.
view.url_query.utm_campaignstringThe parameter in the URL identifying the specific marketing campaign tied to that view.
view.url_query.utm_contentstringThe parameter in the URL identifying the specific element a user clicked within a marketing campaign.
view.url_query.utm_termstringThe parameter in the URL tracking the keyword a user searched to trigger a given campaign.

Overview

The RUM Android SDK generates events that have associated attributes. These can have quantifiable values and can be used for measurements related to the event, while others are non-quantifiable values used to slice telemetry values (group by) in analytics.

Every RUM event has all of the default attributes, for example, the device type (device.type) and user information such as their name (usr.name) and their country (geo.country).

There are additional attributes that are specific to a given event type. For example, the view.time_spent attribute is associated with "view" events and the resource.method one is associated with "resource" events.

Event TypeRetentionDescription
Session30 daysA session represents a real user journey on your mobile application. It begins when the user launches the application, and the session remains live as long as the user stays active. During the user journey, all RUM events generated as part of the session will share the same session.id attribute. Note: The session resets after 15 minutes of inactivity. If the application is killed by the OS, you can reset the session while the application is in the background.
View30 daysA view represents a unique screen (or screen segment) on your mobile application. A view starts and stops when the onActivityResumed and onActivityPaused callbacks are called through the ActivityLifecycleCallbacks interface. Each occurrence is classified as a distinct view. While a user stays on a view, RUM event attributes (Errors, Resources, and Actions) get attached to the view with a unique view.id.
Resource15 daysA resource represents network requests to first-party hosts, APIs, and third-party providers in your mobile application. All requests generated during a user session are attached to the view with a unique resource.id.
Error30 daysAn error represents an exception or crash emitted by the mobile application attached to the view it is generated in.
Action30 daysAn action represents user activity in your mobile application (such as an application launch, tap, swipe, or back). Each action is attached with a unique action.id that is also attached to the view it gets generated in. When an action is being tracked, other actions within the next 100 ms do not get sent, unless they are custom actions.
Long Task15 daysA long task event is generated for any task in the application that blocks the main thread for more than the specified duration threshold.

The following diagram illustrates the RUM event hierarchy:

RUM Event hierarchy

Views instrumentation versus app lifecycle

The Android RUM SDK offers various strategies to automatically track views like Activities, Fragments, or Navigation destinations. You can also track views manually by directly calling the RUM APIs. The precise moment a view starts or stops depends on the chosen tracking strategy or manual instrumentation:

  • Activities (ActivityViewTrackingStrategy): When you rely on this strategy, the SDK automatically starts a RUM view when the Activity enters the foreground (onResume) and stops it when the Activity leaves the foreground (onPause).
  • Fragments (FragmentViewTrackingStrategy): Each Fragment in your application is tracked as a separate RUM view. The SDK starts the view in the Fragment's onResume lifecycle method and stops it in onPause.
  • Mixed (MixedViewTrackingStrategy): Activities and Fragments each become distinct RUM views based on their respective lifecycle events (onResume and onPause).
  • Navigation (NavigationViewTrackingStrategy): Each navigation destination is treated as a distinct RUM view, so view boundaries align with navigation events in your graph.
  • Manual View Tracking: When tracking views manually using GlobalRumMonitor APIs, the view starts precisely when you call the startView(...) method and stops when you call the stopView() method.

When the application goes into the background (for example, the user presses the home button or switches apps), RUM automatically stops the current view. Consequently, there is no active view while the app remains in the background. Since RUM's data model requires an active view to correlate and capture events, any events generated in the background are skipped by default. To capture these events instead, see the Track Background Events section.

Note: If you're tracking views manually, you need to configure whether the view should be stopped when the app leaves the foreground.

Default attributes

RUM collects common attributes for all events and attributes specific to each event listed below automatically. You can also choose to enrich your user session data by tracking additional events or by adding custom attributes to default events specific to your application monitoring and business analytics needs.

Common core attributes

Attribute nameTypeDescription
application.idstringThe Datadog application ID.
application.namestringThe Datadog application name.
dateintegerStart of the event in milliseconds from epoch.
servicestringThe unified service name for this application used to correlate user sessions.
typestringThe type of the event (for example, view or resource).

Device

The following device-related attributes are attached automatically to all events collected by Datadog:

Attribute nameTypeDescription
device.architecturestringThe CPU architecture of the device that is reporting the error.
device.brandstringThe device brand as reported by the device (System User-Agent).
device.modelstringThe device model as reported by the device (System User-Agent).
device.namestringThe device name as reported by the device (System User-Agent).
device.typestringThe device type as reported by the device (System User-Agent).

Connectivity

The following network-related attributes are attached automatically to Resource and Error events collected by Datadog:

Attribute nameTypeDescription
connectivity.cellular.carrier_namestringThe name of the SIM carrier.
connectivity.cellular.technologystringThe type of a radio technology used for cellular connection.
connectivity.interfacesstringThe list of available network interfaces (for example, bluetooth, cellular, ethernet, or wifi).
connectivity.statusstringStatus of device network reachability (connected, not connected, or maybe).

Operating system

The following OS-related attributes are attached automatically to all events collected by Datadog:

Attribute nameTypeDescription
os.namestringThe OS name as reported by the device (System User-Agent).
os.versionstringThe OS version as reported by the device (System User-Agent).
os.version_majorstringThe OS version major as reported by the device (System User-Agent).

Geo-location

The following attributes are related to the geo-location of IP addresses.

Note: If you want to stop collecting geo-location attributes, change the setting in your application details.

Attribute nameTypeDescription
geo.countrystringName of the country.
geo.country_iso_codestringISO Code of the country (for example, US for the United States or FR for France).
geo.country_subdivisionstringName of the first subdivision level of the country (for example, California in the United States or the Sarthe department in France).
geo.continent_codestringISO code of the continent (EU, AS, NA, AF, AN, SA, or OC).
geo.continentstringName of the continent (Europe, Australia, North America, Africa, Antarctica, South America, or Oceania).
geo.citystringThe name of the city (for example, San Francisco, Paris, or New York).

Global user attributes

You can enable tracking user info globally to collect and apply user attributes to all RUM events.

Attribute nameTypeDescription
usr.emailstringEmail of the user.
user.idstringIdentifier of the user.
usr.namestringName of the user.

Event-specific attributes

Telemetry are quantifiable values that can be used for measurements related to the event. Attributes are non-quantifiable values used to slice telemetry values (group by) in analytics.

Session attributes

AttributeTypeDescription
session.action.countnumberCount of all actions collected for this session.
session.error.countnumberCount of all errors collected for this session.
session.has_replayBooleanIndicates if the session has a captured Session Replay recording attached to visually play the user experience.
session.idstringUnique ID of the session.
session.ipstringIP address of the session extracted from the TCP connection of the intake. If you want to stop collecting this attribute, change the setting in your application details.
session.is_activeBooleanIndicates if the session is currently active. The session ends if a user navigates away from the application or closes the application, and expires after 4 hours of activity or 15 minutes of inactivity.
session.initial_view.namestringName of the initial view of the session.
session.initial_view.urlstringURL of the initial view of the session.
session.last_view.urlstringURL of the last view of the session.
session.last_view.namestringName of the last view of the session.
session.long_task.countnumberCount of all long tasks collected for this session.
session.resource.countnumberCount of all resources collected for this session.
session.typestringType of the session (user).
session.time_spentnumber (ns)Time spent on a session.
session.view.countnumberCount of all views collected for this session.
session.useragentstringSystem user agent info to interpret device info.

View attributes

RUM action, error, resource, and long task events contain information about the active RUM view event at the time of collection.

AttributeTypeDescription
view.action.countnumberCount of all actions collected for this view.
view.error.countnumberCount of all errors collected for this view.
view.idstringUnique ID of the initial view corresponding to the event.
view.interaction_to_next_view_timenumber (ns)Time between the last user interaction in the previous and start of this (current) view.
view.is_activeBooleanIndicates whether the view corresponding to this event is considered active.
view.loading_timenumber (ns)Time it took for the view to load, set by the addViewLoadingTime(override:) call.
view.long_task.countnumberCount of all long tasks collected for this view.
view.namestringCustomizable name of the view corresponding to the event.
view.network_settled_timenumber (ns)Time it took for a view to be fully loaded with all relevant network calls initiated at the start of the view.
view.resource.countnumberCount of all resources collected for this view.
view.time_spentnumber (ns)Time spent on this view.
view.urlstringCanonical name of the class corresponding to the event.

Resource attributes

AttributeTypeDescription
resource.connect.durationnumber (ns)Time spent establishing a connection to the server (connectEnd - connectStart).
resource.dns.durationnumber (ns)Time spent resolving the DNS name of the last request (domainLookupEnd - domainLookupStart).
resource.download.durationnumber (ns)Time spent downloading the response (responseEnd - responseStart).
resource.durationnumber (ns)Entire time spent loading the resource.
resource.first_byte.durationnumber (ns)Time spent waiting for the first byte of response to be received (responseStart - requestStart).
resource.idstringUnique identifier of the resource.
resource.methodstringThe HTTP method (for example, POST, GET, PATCH, or DELETE).
resource.provider.domainstringThe resource provider domain.
resource.provider.namestringThe resource provider name. Default is unknown.
resource.provider.typestringThe resource provider type (for example, first-party, cdn, ad, or analytics).
resource.redirect.durationnumber (ns)Time spent on subsequent HTTP requests (redirectEnd - redirectStart).
resource.sizenumber (bytes)Resource size.
resource.ssl.durationnumber (ns)Time spent for the TLS handshake. If the last request is not over HTTPS, this attribute does not appear (connectEnd - secureConnectionStart).
resource.status_codenumberThe response status code.
resource.typestringThe type of resource being collected (for example, xhr, image, font, css, or js).
resource.urlstringThe resource URL.

Error attributes

Frontend errors are collected with Real User Monitoring (RUM). The error message and stack trace are included when available.

AttributeTypeDescription
error.sourcestringWhere the error originates from (for example, webview, logger, or network).
error.typestringThe error type (or error code in some cases).
error.messagestringA concise, human-readable one-line message explaining the event.
error.stackstringThe stack trace or complementary information about the error.
error.issue_idstringUnique identifier for the error issue.
error.categorystringThe high-level grouping for the type of error. Possible values are ANR or Exception
error.filestringFile where the error happened for the Error Tracking issue.
error.is_crashBooleanIndicates whether the error caused the application to crash.

Network errors

Network errors include information about failing HTTP requests. The following facets are also collected:

AttributeTypeDescription
error.resource.status_codenumberThe response status code.
error.resource.methodstringThe HTTP method (for example, POST or GET).
error.resource.urlstringThe resource URL.
error.resource.provider.namestringThe resource provider name. Default is unknown.
error.resource.provider.domainstringThe resource provider domain.
error.resource.provider.typestringThe resource provider type (for example, first-party, cdn, ad, or analytics).

Action timing attributes

AttributeTypeDescription
action.loading_timenumber (ns)The loading time of the action.
action.long_task.countnumberCount of all long tasks collected for this action.
action.resource.countnumberCount of all resources collected for this action.
action.error.countnumberCount of all errors collected for this action.

Action attributes

AttributeTypeDescription
action.idstringUUID of the user action.
action.typestringType of the user action (for example, tap or application_start).
action.namestringName of the user action.
action.target.namestringElement that the user interacted with. Only for automatically collected actions.

Data storage

Before data is uploaded to Datadog, it is stored in cleartext in your application's cache directory. This cache folder is protected by Android's Application Sandbox, meaning that on most devices, this data can't be read by other applications. However, if the mobile device is rooted, or someone tampers with the Linux kernel, the stored data might become readable.

Data upload

The RUM Android SDK allows you to get the data you need to Datadog while considering user bandwidth impact. The Datadog SDK batches and uploads events as follows:

  • On event collected, the Datadog SDK appends uncompressed events to a batch file (using a tag-length-value, or TLV encoding format)
  • On upload (when the batch is considered "closed"), the Datadog SDK:
    • Reads the batch and extracts events
    • Drops redundant View events in RUM (no optimizations in other tracks)
    • Builds payloads specific to each track
    • Compresses the payload and sends it

Direct Boot mode support

Note: If your application supports Direct Boot mode, data captured before the device is unlocked won't be captured, since the credential encrypted storage won't be available yet.

Overview

The RUM iOS SDK generates events that have associated telemetry and attributes. Telemetry are quantifiable values that can be used for measurements related to the event. Attributes are non-quantifiable values used to slice telemetry values (group by) in analytics.

Every RUM event has all of the default attributes, for example, the device type (device.type) and user information such as their name (usr.name) and their country (geo.country).

There are additional attributes specific to a given event type. For example, the view.loading_time telemetry is associated with view events, and the resource.method attribute is associated with resource events.

Event TypeRetentionDescription
Session30 daysA session represents a real user journey on your mobile application. It begins when the user launches the application, and the session remains live as long as the user stays active. During the user journey, all RUM events generated as part of the session share the same session.id attribute. Note: The session resets after 15 minutes of inactivity. If the application is killed by the OS, you can reset the session while the application is in the background.
View30 daysA view represents a unique screen (or screen segment) on your mobile application. A view starts and stops when the viewDidAppear(animated:) and viewDidDisappear(animated:) callbacks on the UIViewController class are notified. Individual UIViewControllers are classified as distinct views. While a user stays on a view, RUM event attributes (Errors, Resources, Actions) get attached to the view with a unique view.id.
Resource15 daysA resource represents network requests to first-party hosts, APIs, and third-party providers in your mobile application. All requests generated during a user session are attached to the view with a unique resource.id.
Error30 daysAn error represents an exception or crash emitted by the mobile application attached to the view it is generated in.
Action30 daysAn action represents user activity in your mobile application (for example, application launch, tap, swipe, or back). Each action is attached with a unique action.id attached to the view it gets generated in. When an action is being tracked, other actions within the next 100 ms do not get sent, unless they are custom actions.
Long task15 daysA long task event is generated for any task in the application that blocks the main thread for more than the specified duration threshold.

The following diagram illustrates the RUM event hierarchy:

RUM Event hierarchy

Views instrumentation versus app lifecycle

RUM integrates with UIKit and SwiftUI views and also provides APIs for manual view tracking. The timing of when a view starts and ends depends on the type of instrumentation used:

UIKit Views: When automatically tracking UIKit views using UIKitRUMViewsPredicate, RUM starts the view at the viewDidAppear(animated:) event of the UIViewController lifecycle. The view is stopped at viewDidDisappear(animated:). SwiftUI Views: When tracking SwiftUI views with the .trackRUMView(name:) view modifier, RUM starts the view at the onAppear(perform:) callback and stops it at onDisappear(perform:). Manual View Tracking: When tracking views manually using RUMMonitor APIs, the view starts precisely when you call the startView(...) method and stops when you call the stopView() method.

When the application leaves the foreground, RUM automatically stops the current view, leaving no active view. Since RUM's data model requires an active view to track other events, by default, all events tracked in the background are skipped due to the absence of a view. To capture these events instead, see the Track Background Events.

Note: If you're tracking views manually, you need to decide on your own whether the view should be stopped when the app leaves the foreground.

Default attributes

RUM collects common attributes for all events and attributes specific to each event by default listed below. You can also choose to enrich your user session data with additional events to default events specific to your application monitoring and business analytics needs.

Common core attributes

Attribute nameTypeDescription
dateintegerStart of the event in milliseconds from epoch.
typestringThe type of the event (for example, view or resource).
servicestringThe unified service name for this application used to correlate user sessions.
application.idstringThe Datadog application ID.
application.namestringThe Datadog application name.

Device

The following device-related attributes are attached automatically to all events collected by Datadog:

Attribute nameTypeDescription
device.architecturestringThe CPU architecture of the device that is reporting the error.
device.batteryLevelnumberThe current battery level of the device (0.0 to 1.0).
device.brandstringThe device brand as reported by the device (System User-Agent).
device.brightnessLevelnumberThe current screen brightness level (0.0 to 1.0).
device.localestringThe user's locale as a language tag combining language and region (for example, 'en-US').
device.localesarray (string)Ordered list of the user's preferred system languages as IETF language tags.
device.modelstringThe device model as reported by the device (System User-Agent).
device.namestringThe device name as reported by the device (System User-Agent).
device.powerSavingModeBooleanWhether the device is in power saving mode.
device.timeZonestringThe device's current time zone identifier.
device.typestringThe device type as reported by the device (System User-Agent).

Connectivity

The following network-related attributes are attached automatically to Resource and Error events collected by Datadog:

Attribute nameTypeDescription
connectivity.statusstringStatus of device network reachability (connected, not connected, maybe).
connectivity.interfacesstringThe list of available network interfaces (for example, bluetooth, cellular, ethernet, or wifi).
connectivity.cellular.technologystringThe type of radio technology used for cellular connection.
connectivity.cellular.carrier_namestringThe name of the SIM carrier.

Operating system

The following OS-related attributes are attached automatically to all events collected by Datadog:

Attribute nameTypeDescription
os.buildstringThe OS build number.
os.namestringThe OS name as reported by the device (System User-Agent).
os.versionstringThe OS version as reported by the device (System User-Agent).
os.version_majorstringThe OS version major as reported by the device (System User-Agent).

Geo-location

The following attributes are related to the geo-location of IP addresses.

Note: If you want to stop collecting geo-location attributes, change the setting in your application details.

Attribute nameTypeDescription
geo.countrystringName of the country
geo.country_iso_codestringISO Code of the country (for example, US for the United States or FR for France).
geo.country_subdivisionstringName of the first subdivision level of the country (for example, California in the United States or the Sarthe department in France).
geo.continent_codestringISO code of the continent (EU, AS, NA, AF, AN, SA, OC).
geo.continentstringName of the continent (Europe, Australia, North America, Africa, Antarctica, South America, Oceania).
geo.citystringThe name of the city (for example, San Francisco, Paris, or New York).

Global user attributes

You can enable tracking user info globally to collect and apply user attributes to all RUM events.

Attribute nameTypeDescription
usr.idstringIdentifier of the user.
usr.namestringName of the user.
usr.emailstringEmail of the user.

Event-specific attributes

Session attributes

AttributeTypeDescription
session.action.countnumberCount of all actions collected for this session.
session.error.countnumberCount of all errors collected for this session.
session.long_task.countnumberCount of all long tasks collected for this session.
session.has_replayBooleanIndicates if the session has a captured Session Replay recording attached to visually play the user experience.
session.idstringUnique ID of the session.
session.initial_view.urlstringURL of the initial view of the session.
session.initial_view.namestringName of the initial view of the session.
session.ipstringIP address of the session extracted from the TCP connection of the intake. If you want to stop collecting this attribute, change the setting in your application details.
session.is_activeBooleanIndicates if the session is currently active. The session ends if a user navigates away from the application or closes the browser window, and expires after 4 hours of activity or 15 minutes of inactivity.
session.last_view.urlstringURL of the last view of the session.
session.last_view.namestringName of the last view of the session.
session.resource.countnumberCount of all resources collected for this session.
session.time_spentnumber (ns)Time spent on a session.
session.typestringType of the session (user).
session.useragentstringSystem user agent info to interpret device info.
session.view.countnumberCount of all views collected for this session.

View attributes

RUM action, error, resource, and long task events contain information about the active RUM view event at the time of collection.

AttributeTypeDescription
view.action.countnumberCount of all actions collected for this view.
view.error.countnumberCount of all errors collected for this view.
view.is_activeBooleanIndicates whether the view corresponding to this event is considered active.
view.idstringUnique ID of the initial view corresponding to the event.
view.loading_timenumber (ns)Time it took for the view to load, set by addViewLoadingTime(override:) call.
view.long_task.countnumberCount of all long tasks collected for this view.
view.interaction_to_next_view_timenumber (ns)Time between the last user interaction in the previous view and start of this (current) view.
view.namestringCustomizable name of the view corresponding to the event.
view.network_settled_timenumber (ns)Time it took for a view to be fully initiated at the start of the view.
view.resource.countnumberCount of all resources collected for this view.
view.time_spentnumber (ns)Time spent on this view.
view.urlstringURL of the UIViewController class corresponding to the event.

Resource attributes

AttributeTypeDescription
resource.connect.durationnumber (ns)Time spent establishing a connection to the server (connectEnd - connectStart).
resource.dns.durationnumber (ns)Time spent resolving the DNS name of the last request (domainLookupEnd - domainLookupStart).
resource.download.durationnumber (ns)Time spent downloading the response (responseEnd - responseStart).
resource.durationnumberEntire time spent loading the resource.
resource.first_byte.durationnumber (ns)Time spent waiting for the first byte of response to be received (responseStart - requestStart).
resource.idstringUnique identifier of the resource.
resource.methodstringThe HTTP method (for example, POST, GET, PATCH, or DELETE).
resource.provider.namestringThe resource provider name. Default is unknown.
resource.provider.domainstringThe resource provider domain.
resource.provider.typestringThe resource provider type (for example, first-party, cdn, ad, or analytics).
resource.redirect.durationnumber (ns)Time spent on subsequent HTTP requests (redirectEnd - redirectStart).
resource.sizenumber (bytes)Resource size.
resource.ssl.durationnumber (ns)Time spent for the TLS handshake.
resource.status_codenumberThe response status code.
resource.typestringThe type of resource being collected (for example, xhr, image, font, css, or js).
resource.urlstringThe resource URL.

Error attributes

Frontend errors are collected with Real User Monitoring (RUM). The error message and stack trace are included when available.

AttributeTypeDescription
error.sourcestringWhere the error originates from (for example, webview, logger, or network).
error.typestringThe error type (or error code in some cases).
error.messagestringA concise, human-readable, one-line message explaining the event.
error.stackstringThe stack trace or complementary information about the error.
error.issue_idstringThe stack trace or complementary information about the error.
error.categorystringThe high-level grouping for the type of error. Possible values are ANR, App Hang, Exception, Watchdog Termination, Memory Warning or Network.
error.filestringFile where the issue found by Error Tracking occurred.
error.is_crashBooleanIndicates whether the error caused the application to crash.
freeze.durationint64Duration of the main thread freeze (in nanoseconds). This is only supported for App Hangs.

Network errors

Network errors include information about failing HTTP requests. The following facets are also collected:

AttributeTypeDescription
error.resource.status_codenumberThe response status code.
error.resource.methodstringThe HTTP method (for example, POST or GET).
error.resource.urlstringThe resource URL.
error.resource.provider.namestringThe resource provider name. Default is unknown.
error.resource.provider.domainstringThe resource provider domain.
error.resource.provider.typestringThe resource provider type (for example, first-party, cdn, ad, or analytics).

Action attributes

AttributeTypeDescription
action.error.countnumberCount of all errors issued by this action.
action.idstringUUID of the user action.
action.loading_timenumber (ns)The loading time of the action.
action.long_task.countnumberCount of all long tasks collected for this action.
action.namestringName of the user action.
action.resource.countnumberCount of all resources issued by this action.
action.target.namestringElement that the user interacted with. Only for automatically collected actions.
action.typestringType of the user action (for example, tap or application_start).

Data storage

Before data is uploaded to Datadog, it is stored in cleartext in the cache directory (Library/Caches) of your application sandbox, which can't be read by any other app installed on the device.

Overview

The Datadog Flutter SDK for RUM generates events with associated telemetry and attributes. Telemetry are quantifiable values that can be used for measurements related to the event. Attributes are non-quantifiable values used to slice telemetry values (group by) in the RUM Explorer.

Most Flutter Monitoring data is collected by native Datadog iOS and Android SDKs for RUM, and is retained for the same periods of time.

Overview

The Datadog React Native SDK for RUM generates events with associated telemetry and attributes. Telemetry are quantifiable values that can be used for measurements related to the event. Attributes are non-quantifiable values used to slice telemetry values (group by) in the RUM Explorer.

Most React Native Monitoring data is collected by native Datadog iOS and Android SDKs for RUM, and is retained for the same periods of time.

Overview

The Datadog Kotlin Multiplatform SDK for RUM generates events with associated telemetry and attributes. Telemetry are quantifiable values that can be used for measurements related to the event. Attributes are non-quantifiable values used to slice telemetry values (group by) in the RUM Explorer.

Most Kotlin Multiplatform Monitoring data is collected by native Datadog iOS and Android SDKs for RUM, and is retained for the same periods of time.

Overview

The RUM Roku SDK generates events that have associated telemetry and attributes. Telemetry is quantifiable values that can be used for measurements related to the event. Attributes are non-quantifiable values used to slice telemetry values (group by) in analytics.

Every RUM event has all of the default attributes, for example, the device type (device.type) and user information such as their name (usr.name) and their country (geo.country).

There are additional attributes specific to a given event type. For example, the view.loading_time telemetry is associated with view events, and the resource.method attribute is associated with resource events.

Event TypeRetentionDescription
Session30 daysA session represents a real user journey on your Roku channel. It begins when the user launches the channel, and the session remains live as long as the user stays active. During the user journey, all RUM events generated as part of the session will share the same session.id attribute. Note: The session resets after 15 minutes of inactivity. If the channel crashes or is killed by the Roku OS, it will reset the session.
View30 daysA view represents a unique screen (or screen segment) on your Roku channel. A view starts when you call the startView function and stops when a new view is started. Each occurrence is classified as a distinct view. While a user stays on a view, RUM event attributes (Errors, Resources, and Actions) get attached to the view with a unique view.id.
Resource15 daysA resource represents network requests to first-party hosts, APIs, and third-party providers in your Roku channel. All requests generated during a user session are attached to the view with a unique resource.id.
Error30 daysAn error represents an exception or crash emitted by the Roku channel attached to the view it is generated in.
Action30 daysAn action represents user activity in your Roku channel (such as a remote click). Each action is attached with a unique action.id attached to the view it gets generated in.
Long Task15 daysA long task event is generated for any task in the application that blocks the main thread for more than the specified duration threshold.

The following diagram illustrates the RUM event hierarchy:

RUM Event hierarchy

Default attributes

RUM collects common attributes for all events and attributes specific to each event listed below automatically. You can also choose to enrich your user session data by tracking additional events or by adding custom attributes to default events specific to your application monitoring and business analytics needs.

Common core attributes

Attribute nameTypeDescription
dateintegerStart of the event in milliseconds from epoch.
typestringThe type of the event (for example, view or resource).
servicestringThe unified service name for this application used to correlate user sessions.
application.idstringThe Datadog application ID.

Device

The following device-related attributes are attached automatically to all events collected by Datadog:

Attribute nameTypeDescription
device.typestringThe device type as reported by the device (System User-Agent).
device.brandstringThe device brand as reported by the device (System User-Agent).
device.modelstringThe device model as reported by the device (System User-Agent).
device.namestringThe device name as reported by the device (System User-Agent).

Operating system

The following OS-related attributes are attached automatically to all events collected by Datadog:

Attribute nameTypeDescription
os.namestringThe OS name as reported by the device (System User-Agent).
os.versionstringThe OS version as reported by the device (System User-Agent).
os.version_majorstringThe OS version major as reported by the device (System User-Agent).

Geo-location

The following attributes are related to the geo-location of IP addresses.

Note: If you want to stop collecting geo-location attributes, change the setting in your application details.

Attribute nameTypeDescription
geo.countrystringName of the country.
geo.country_iso_codestringISO Code of the country (for example, US for the United States or FR for France).
geo.country_subdivisionstringName of the first subdivision level of the country (for example, California in the United States or the Sarthe department in France).
geo.continent_codestringISO code of the continent (EU, AS, NA, AF, AN, SA, or OC).
geo.continentstringName of the continent (Europe, Australia, North America, Africa, Antarctica, South America, or Oceania).
geo.citystringThe name of the city (for example, San Francisco, Paris, or New York).

Global user attributes

You can enable tracking user info globally to collect and apply user attributes to all RUM events.

Attribute nameTypeDescription
user.idstringIdentifier of the user.
usr.namestringName of the user.
usr.emailstringEmail of the user.

Event-specific attributes

Telemetry is quantifiable values that can be used for measurements related to the event. Attributes are non-quantifiable values used to slice telemetry values (group by) in analytics.

Session attributes

Attribute nameTypeDescription
session.action.countnumberCount of all actions collected for this session.
session.error.countnumberCount of all errors collected for this session.
session.idstringUnique ID of the session.
session.initial_view.namestringName of the initial view of the session.
session.initial_view.urlstringURL of the initial view of the session.
session.ipstringIP address of the session extracted from the TCP connection of the intake. If you want to stop collecting this attribute, change the setting in your application details.
session.is_activeBooleanIndicates if the session is currently active. The session ends if a user navigates away from the application or closes the browser window, and expires after 4 hours of activity or 15 minutes of inactivity.
session.last_view.namestringName of the last view of the session.
session.last_view.urlstringURL of the last view of the session.
session.long_task.countnumberCount of all long tasks collected for this session.
session.resource.countnumberCount of all resources collected for this session.
session.time_spentnumber (ns)Time spent on a session.
session.typestringType of the session (user).
session.useragentstringSystem user agent info to interpret device info.
session.view.countnumberCount of all views collected for this session.

View attributes

RUM action, error, resource, and long task events contain information about the active RUM view event at the time of collection.

AttributeTypeDescription
view.action.countnumberCount of all actions collected for this view.
view.error.countnumberCount of all errors collected for this view.
view.idstringUnique ID of the initial view corresponding to the event.
view.is_activebooleanIndicates whether the view corresponding to this event is considered active.
view.long_task.countnumberCount of all long tasks collected for this view.
view.namestringCustomizable name of the view corresponding to the event.
view.resource.countnumberCount of all resources collected for this view.
view.time_spentnumber (ns)Time spent on this view.
view.urlstringCanonical name of the class corresponding to the event.

Resource attributes

Attribute nameTypeDescription
resource.connect.durationnumber (ns)Time spent establishing a connection to the server (connectEnd - connectStart).
resource.dns.durationnumber (ns)Time spent resolving the DNS name of the last request (domainLookupEnd - domainLookupStart).
resource.download.durationnumber (ns)Time spent downloading the response (responseEnd - responseStart).
resource.durationnumber (ns)Entire time spent loading the resource.
resource.first_byte.durationnumber (ns)Time spent waiting for the first byte of response to be received (responseStart - RequestStart).
resource.idstringUnique identifier of the resource.
resource.methodstringThe HTTP method (for example, POST, GET, PATCH, or DELETE).
resource.provider.domainstringThe resource provider domain.
resource.provider.namestringThe resource provider name. Default is unknown.
resource.provider.typestringThe resource provider type (for example, first-party, cdn, ad, or analytics).
resource.redirect.durationnumber (ns)Time spent on subsequent HTTP requests (redirectEnd - redirectStart).
resource.sizenumber (bytes)Resource size.
resource.ssl.durationnumber (ns)Time spent for the TLS handshake. If the last request is not over HTTPS, this attribute does not appear (connectEnd - secureConnectionStart).
resource.status_codenumberThe response status code.
resource.typestringThe type of resource being collected (for example, xhr, image, font, css, or js).
resource.urlstringThe resource URL.

Error attributes

Frontend errors are collected with Real User Monitoring (RUM). The error message and stack trace are included when available.

AttributeTypeDescription
error.sourcestringWhere the error originates from (for example, webview, logger, or network).
error.typestringThe error type (or error code in some cases).
error.messagestringA concise, human-readable one-line message explaining the event.
error.stackstringThe stack trace or complementary information about the error.
error.issue_idstringThe unique identifier for the error issue.

Network errors

Network errors include information about failing HTTP requests. The following facets are also collected:

AttributeTypeDescription
error.resource.status_codenumberThe response status code.
error.resource.methodstringThe HTTP method (for example, POST or GET).
error.resource.urlstringThe resource URL.
error.resource.provider.namestringThe resource provider name. Default is unknown.
error.resource.provider.domainstringThe resource provider domain.
error.resource.provider.typestringThe resource provider type (for example, first-party, cdn, ad, or analytics).

Action timing attributes

Attribute nameTypeDescription
action.error.countnumberCount of all errors collected for this action.
action.idstringUUID of the user action.
action.loading_timenumber (ns)The loading time of the action.
action.long_task.countnumberCount of all long tasks collected for this action.
action.namestringName of the user action.
action.resource.countnumberCount of all resources collected for this action.
action.target.namestringElement that the user interacted with. Only for automatically collected actions.
action.typestringType of the user action (for example, tap or application_start).

Data storage

Before data is uploaded to Datadog, it is stored in cleartext in your channel's cache directory, meaning that this data can't be read by other applications.

Note: The OS can evict the data at any time, which could result in data loss in some rare cases.

Overview

The Datadog Unity SDK for RUM generates events with associated telemetry and attributes. Telemetry are quantifiable values that can be used for measurements related to the event. Attributes are non-quantifiable values used to slice KPI values (group by) in the RUM Explorer.

Most Unity Monitoring data is collected by native Datadog iOS and Android SDKs for RUM, and is retained for the same periods of time.