Getting Started

Performance monitoring augments your existing error data by capturing interactions among your software systems.

With performance monitoring, Sentry tracks your software performance, measuring metrics like throughput and latency, and displaying the impact of errors across multiple systems.

You can choose to manually measure any operation. To learn more, see Manual Instrumentation.

By monitoring the performance of your application, you can see how latency in one service may affect another service to pinpoint exactly which parts of a given operation may be responsible. To do this, Sentry captures distributed traces consisting of transactions and spans, which measure individual services and individual operations within those services, respectively. You can learn more about this model in our Distributed Tracing docs.


Install the tracing package:

As @sentry/tracing is already included with our React Native SDK, no action is needed.


Enable performance monitoring in your app by either:

  1. Setting a uniform sample rate for all transactions using the tracesSampleRate option in your SDK config to a number between 0 and 1. (For example, to send 20% of transactions, set tracesSampleRate to 0.2.)
  2. Controlling the sample rate dynamically, based on the transaction itself and the context in which it's captured, by providing a function to the tracesSampler config option.
import * as Sentry from "@sentry/react-native";

// Unlike Sentry on other platforms, you do not need to import anything to use tracing on React Native

  dsn: "",

  // To set a uniform sample rate
  tracesSampleRate: 0.2

  // Alternatively, to control sampling dynamically
  tracesSampler: samplingContext => { ... }

If either of these options is set, tracing will be enabled in your app. While these options are meant to be mutually exclusive, if you do set both, tracesSampler will take precedence. You can learn more about how they work in Sampling Transactions.


When you first enable tracing, verify it is working correctly by setting tracesSampleRate to 1.0 as that ensures that every transaction will be sent to Sentry.

Once testing is complete, we recommend lowering this value in production by either lowering your tracesSampleRate value, or switching to using tracesSampler to dynamically sample and filter your transactions.

Without sampling, our automatic instrumenation will send a transaction any time any user loads any page or navigates anywhere in your app. That's a lot of transactions! Sampling enables representative data without overwhelming either your system or your Sentry transaction quota.

You can edit this page on GitHub.