# Sample Rates

## [Overview](https://docs.sentry.io/.md#overview)

### [What Is a Sample Rate?](https://docs.sentry.io/.md#what-is-a-sample-rate)

Adding Sentry to your app gives you a lot of valuable information about errors and performance you wouldn't otherwise get. And lots of information is good -- as long as it's the right information, at a reasonable volume. You can use sample rates to capture only a specified percentage of events like errors and traces.

### [Why Not Capture All Events?](https://docs.sentry.io/.md#why-not-capture-all-events)

We recommend sampling your transactions for two reasons:

1. Capturing a single trace involves minimal overhead, but capturing traces for every page load or API request may add an undesirable load to your system.

2. Enabling sampling allows you to better manage the number of events sent to Sentry, so you can tailor your volume to your organization's needs and budget.

Choose a sampling rate that balances data accuracy with performance and storage concerns. You should aim to collect enough data to get meaningful insights without overloading resources. If unsure, start with a low rate and gradually increase it as you understand your traffic patterns better.

## [Sampling Rate Options](https://docs.sentry.io/.md#sampling-rate-options)

Some of the options below aren't available in every SDK; check out our platform-specific docs for more info.

### [Error Events](https://docs.sentry.io/.md#error-events)

* **SampleRate** - Configures the sample rate for error events, in the range of 0.0 to 1.0. The default is 1.0, which means that 100% of error events will be sent. If set to 0.1, only 10% of error events will be sent. Events are picked randomly.

### [Tracing](https://docs.sentry.io/.md#tracing)

* **tracesSampleRate** - A number between `0` and `1`, controlling the percentage chance a given transaction will be sent to Sentry. (`0` represents 0% while `1` represents 100%.) Applies equally to all transactions created in the app. Either this or `tracesSampler` must be defined to enable tracing.

* **tracesSampler** - A function responsible for determining the percentage chance a given transaction will be sent to Sentry. It will automatically be passed information about the transaction and the context in which it's being created, and must return a number between 0 (0% chance of being sent) and 1 (100% chance of being sent). Can also be used for filtering transactions, by returning 0 for those that are unwanted. Either this or `tracesSampleRate` must be defined to enable tracing.

Learn more about [tracing](https://docs.sentry.io/product/tracing.md) in Sentry.

### [Session Replay](https://docs.sentry.io/.md#session-replay)

* **replaysSessionSampleRate** - The sample rate for replays that begin recording immediately and last the entirety of the user's session. 1.0 collects all replays, and 0 collects none.

* **replaysOnErrorSampleRate** - The sample rate for replays that are recorded when an error happens. This type of replay will record up to a minute of events prior to the error and continue recording until the session ends. 1.0 captures all sessions with an error, and 0 captures none.

Learn more about [session replay](https://docs.sentry.io/product/explore/session-replay.md) in Sentry.
