React Native RUM data model π
The React Native RUM agent includes a package that collects the following types of data about your React Native application.
Common data types π
The Splunk RUM data model represents the following logical entities, following OpenTelemetry conventions:
Trace |
A set of events triggered as a result of a single logical operation, distributed across various components of an application. Traces contain events that cross process, network, and security boundaries. A RUM trace can, for example, initiate when someone taps on a button to start an action on a website. If you use RUM and APM together, traces represent calls made between the downstream services that handle the requests initiated by the user action. |
Span |
An operation within a transaction. A single span includes the logical name, the start and end timestamp of the operation, and the events and attributes linked to the captured data. A span might have a reference to its parent span and zero or more causally-related spans. Spans have universal attributes and custom attributes. |
Session |
A collection of traces that correspond to the actions a single user takes when interacting with an application over a period of time. By default, a session lasts until 15 minutes passed from the last event captured in the session. The maximum session duration is 4 hours. |
Interaction |
Reflects the action the user conducts within the user interface. Common interaction types include mouse clicks, taps on a touch screen, and keyboard events. |
User |
By default, Splunk RUM doesnβt collect identity data. Mapping a trace to a specific user requires manual instrumentation. Users can be represented by their username, email addresses, or using a synthetic identifier. Synthetic representation is useful in situations where PII regulations do not allow users to be identified. |
Basic properties π
The following properties are common to all applications instrumented for Splunk RUM:
Name |
Type |
Description |
---|---|---|
|
String |
Unique 64-bit identifier generated for the span within the trace. |
|
String |
Parent span ID. Absent if the span is the root span in a trace. |
|
String |
Logical operation the span represents. |
|
Number |
Duration in microseconds. |
|
String |
Unique 128-bit identifier, set on all spans belonging to the trace. |
|
Number |
Epoch microseconds of the start of the span. Can be absent if incomplete. |
|
Object |
Additional context, allowing to search and analyze spans based on specific tags. |
|
Struct |
Represents global trace options. Options are propagated to all child spans and determine features such as whether a span is traced. |
|
Struct |
Carries tracing-system specific context in a list of key-value pairs. |
|
Enum |
Type of span. Use it to set additional relationships between spans. The default value is Supported values are:
|
The following table describes each value of SpanKind
:
Name |
Description |
---|---|
|
Default value. Indicates that the span is used internally. |
|
Indicates that the span covers server-side handling of an RPC or other remote request. |
|
Indicates that the span covers the client-side wrapper around an RPC or other remote request. |
|
Indicates that the span describes producer sending a message to a broker. |
|
Indicates that the span describes consumer receiving a message from a broker. |
Default attributes π
By default, the React Native RUM agent adds the following attributes to all spans:
Name |
Type |
Description |
---|---|---|
|
String |
Session identifier, randomly generated by Splunk RUM. It doesnβt contain personally identifiable information. |
|
String |
Identifier of the session preceding the current session. Set only if there is a change in the |
|
String |
Version of the Splunk RUM SDK instrumenting the application. |
Resource attributes π
By default, the React Native RUM agent adds the following resource attributes to all spans:
Name |
Type |
Description |
---|---|---|
|
String |
The model name for the device. |
|
String |
The identifier or name for the device. |
|
String |
Name of the operating system. Possible values are |
|
String |
Always set to |
|
String |
Version of the operating system. |
|
String |
If the React Navigation instrumentation is activated, contains the name of the screen. |
|
String |
If the React Navigation instrumentation is activated, contains the name of the last screen. |
Instrumentation attributes π
The React Native RUM agent collects the following data using its instrumentations.
Errors π
The React Native RUM agent adds the following attributes to spans that represent errors:
Name |
Type |
Description |
---|---|---|
|
Boolean |
Whether the exception is fatal. |
|
String |
Message that describes the exception. |
|
String |
Error object. |
|
String |
Stack trace for the exception. |
XHR/FETCH π
XHR/FETCH monitoring produces spans with the name HTTP <http-method>
and the following attributes:
Name |
Type |
Description |
---|---|---|
|
String |
HTTP method of the request. |
|
String |
Status code returned by the request. |
|
String |
URL of the request. |
|
String |
Associated trace identifier. See Link RUM with Splunk APM. |
|
String |
Associated trace identifier. See Link RUM with Splunk APM. |
App start monitoring π
App start monitoring feature generates spans whenever the app performs a cold or warm start.
Cold starts happen when users open the app for the first time since booting the phone, or after the user has terminated the app.
Hot starts happen when the system brings an app to the foreground. Hot starts are faster than cold starts because the app is already loaded.
App start monitoring produces spans with the name AppStart
and the following attributes:
Name |
Type |
Description |
---|---|---|
|
String |
Always |
|
String |
The type of start. Can be |