Docs » Supported integrations in Splunk Observability Cloud » Instrument mobile and web applications for Splunk RUM » Instrument React Native applications for Splunk RUM » React Native RUM data model

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

SpanId

String

Unique 64-bit identifier generated for the span within the trace.

ParentSpanId

String

Parent span ID. Absent if the span is the root span in a trace.

name

String

Logical operation the span represents.

duration

Number

Duration in microseconds.

traceId

String

Unique 128-bit identifier, set on all spans belonging to the trace.

timestamp

Number

Epoch microseconds of the start of the span. Can be absent if incomplete.

tags

Object

Additional context, allowing to search and analyze spans based on specific tags.

TraceFlags

Struct

Represents global trace options. Options are propagated to all child spans and determine features such as whether a span is traced.

TraceState

Struct

Carries tracing-system specific context in a list of key-value pairs.

SpanKind

Enum

Type of span. Use it to set additional relationships between spans. The default value is Internal.

Supported values are:

  • Internal

  • Server

  • Client

  • Producer

  • consumer

The following table describes each value of SpanKind:

Name

Description

Internal

Default value. Indicates that the span is used internally.

Server

Indicates that the span covers server-side handling of an RPC or other remote request.

Client

Indicates that the span covers the client-side wrapper around an RPC or other remote request.

Producer

Indicates that the span describes producer sending a message to a broker.

Consumer

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

splunk.rumSessionId

String

Session identifier, randomly generated by Splunk RUM. It doesn’t contain personally identifiable information.

splunk.rum.previous_session_id

String

Identifier of the session preceding the current session. Set only if there is a change in the splunk.rumSessionId attribute.

splunk.rumVersion

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

device.model.name

String

The model name for the device.

device.model.identifier

String

The identifier or name for the device.

os.name

String

Name of the operating system. Possible values are iOS and Android.

os.type

String

Always set to linux. Only available in Android.

os.version

String

Version of the operating system.

screen.name

String

If the React Navigation instrumentation is activated, contains the name of the screen.

last.screen.name

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

error.isFatal

Boolean

Whether the exception is fatal.

error.message

String

Message that describes the exception.

error.object

String

Error object.

error.stack

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

http.method

String

HTTP method of the request.

http.status_code

String

Status code returned by the request.

http.url

String

URL of the request.

link.traceId

String

Associated trace identifier. See Link RUM with Splunk APM.

link.spanId

String

Associated trace identifier. See Link RUM with Splunk APM.

React Navigation πŸ”—

Navigation monitoring produces spans with the name Created and the following attributes:

Name

Type

Examples

component

String

ui

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

component

String

Always appstart.

start.type

String

The type of start. Can be cold, or hot.