Configuration options
Instrumentation's
Turn on/off specific instrumentation; defaults to true for all. Each instrumentation is responsible for which data the SDK will track and collect for you.
await CoralogixRum.init({
// ...
instrumentations: {
errors: true,
custom: true,
mobile_vitals: true,
anr: true,
lifecycle: true,
user_interaction: true,
network: true
},
});
The network instrumentation also injects the W3C traceparent header. Setting network to false
stops trace context propagation as well, even when traceParentInHeader is enabled.
Mobile vital detectors
Disable specific mobile vitals detection and collection
await CoralogixRum.init({
// ...
mobileVitals: {
warm: true,
cold: true,
cpu: true,
memory: true,
rendering: true,
slowFrozenFrames: true,
}
});
Cold start
Two cold-start values are reported per user-visible launch:
cold— measured by the native SDK: process start to the first native frame.cold_hybrid— measured by the plugin: process start to the first frame with React content on screen. This is the launch time your users actually see, so it is always at leastcold.
Setting mobileVitals.cold (or instrumentations.mobile_vitals) to false disables both.
Launches that start in the background (headless JS, background fetch, push) and prewarmed iOS
launches do not report cold_hybrid.
On Android, cold_hybrid is not reported in bridgeless mode (the New Architecture default
since React Native 0.74): React Native only emits the content-appeared marker it relies on
when the app runs with the bridge.
Exclude from sampling
By default, when a session is sampled out (via sessionSampleRate), none of its
RUM events are reported. Use excludeFromSampling to keep reporting specific
event categories even when the session is sampled out.
import { CoralogixRum } from '@coralogix/react-native-plugin';
await CoralogixRum.init({
// ...
sessionSampleRate: 10,
excludeFromSampling: ['errors', 'logs'], // always emitted, even for sampled-out sessions
});
Allowed values: 'errors', 'logs', 'network', 'userInteractions',
'mobileVitals', 'customSpan', 'customMeasurement'.
excludeFromSampling only affects sampled-out sessions; a sampled-in session
reports everything that is enabled. It never re-enables an instrumentation you
turned off in instrumentations: with instrumentations: { network: false },
listing 'network' here has no effect.
Listing anything here also brings back the SDK's own internal events — the
initialization event, and session_replay_init when Session Replay starts — for that
sampled-out session. Leave the list empty and the session reports nothing at all.
Inside a beforeSend callback, session_context.isSessionSampledIn
tells you whether an event came from a sampled-in session or reached you only via
excludeFromSampling, so excluded categories can be filtered further.
Ignore errors
The ignoreErrors option allows you to exclude errors that meet specific criteria. This options accepts a set of strings and regular expressions to match against the event's error message. Use regular expressions for exact matching as strings remove partial matches.
import { CoralogixRum } from '@coralogix/react-native-plugin';
await CoralogixRum.init({
// ...
ignoreErrors: [/Exact Match Error Message/, 'partial/match'],
});
TraceParentInHeader
Add trace context propagation in headers across service boundaries
await CoralogixRum.init({
// ...
traceParentInHeader: {
enabled: true
},
});
The traceparent header is added by the network instrumentation, so this feature depends on it. If
you set instrumentations.network to false, no trace headers are sent even with
enabled: true.