This product is not supported for your selected Datadog site. ().

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 below 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

Front-end 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.

Further reading

Additional helpful documentation, links, and articles: