RUM Android Data Collected

RUM Android Data Collected

The Datadog Real User Monitoring SDK generates six types of events:

Event TypeRetentionDescription
Session30 daysSession 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.
View30 daysiew represents a unique screen (or screen segment) on your mobile application. Individual ViewControllers 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 daysResources represents network requests to first-party hosts, APIs, 3rd party providers, and libraries in your mobile application. All requests generated during a user session are attached to the view with a unique resource.id
Error30 daysError represents an exception or crash emitted by the mobile application attached to the view it is generated in.
Action30 daysAction represents user activity in your mobile application (application launch, tap, swipe, back etc). 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:

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 ms from epoch.
typestringThe type of the event (for example, view or resource).
servicestringThe unified service name for this application used to corelate 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).
connectivity.statusstringStatus of device network reachability (connected, not connected, maybe).
connectivity.interfacesstringThe list of available network interfaces (for example, bluetooth, cellular, ethernet, wifi).
connectivity.cellular.technologystringThe type of a 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.namestringThe OS name as reported by the by the device (System User-Agent).
os.versionstringThe OS version as reported by the by the device (System User-Agent).
os.version_majorstringThe OS version major as reported by the by the device (System User-Agent).

Geo-location

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

FullnameTypeDescription
geo.countrystringName of the country.
geo.country_iso_codestringISO Code of the country (for example, US for the United States, 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.country_subdivision_iso_codestringISO Code of the first subdivision level of the country (for example, CA in the United States or the SA 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, Antartica, South America, Oceania).
geo.citystringThe name of the city (example Paris, 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

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

Session metrics

MetricTypeDescription
session.time_spentnumber (ns)Time spent on a 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.idstringUnique ID of the session.
session.typestringType of the session (user).
session.is_activestringIndicates if the session is currently active.
session.initial_view.urlstringURL of the initial view of the session.
session.initial_view.namestringName 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.ipstringIP address of the session extracted from the TCP connection of the intake.
session.useragentstringSystem user agent info to interpret device info.

View metrics

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

MetricTypeDescription
view.time_spentnumber (ns)Time spent on the this view.
view.loading_timenumber (ns)
view.long_task.countnumberCount of all long tasks collected for this view.
view.error.countnumberCount of all errors collected for this view.
view.resource.countnumberCount of all resources collected for this view.
view.action.countnumberCount of all actions collected for this view.
view.is_activebooleanIndicates whether the view corresponding to this event is considered active.

View attributes

Attribute nameTypeDescription
view.idstringUnique ID of the initial view corresponding to the event.view.
view.urlstringURL of the UIViewController class corresponding to the event.
view.namestringCustomizable name of the view corresponding to the event.

Resource metrics

MetricTypeDescription
durationnumber (ns)Entire 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 metric 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.idstringUnique identifier of the resource.
resource.typestringThe type of resource being collected (for example, xhr, image, font, css, js).
resource.methodstringThe HTTP method (for example POST, GET PATCH, DELETE).
resource.status_codenumberThe response status code.
resource.urlstringThe resource URL.
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, analytics).

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

Error attributes

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.

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, 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, analytics).

Action timing metrics

MetricTypeDescription
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 (tap, application_start).
action.namestringName of the user action.
action.target.namestringElement that the user interacted with. Only for automatically collected actions.

Further Reading

Additional helpful documentation, links, and articles: