Skip to main content

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
},
});
Note

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 least cold.

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.

Note

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
},
});
Note

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.

Last updated on