Performance Monitoring

Sentry allows you to monitor the performance of your application, showing you how latency in one service may affect another service, and letting you pinpoint exactly which parts of a given operation may be responsible. To do this, it 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.

Enabling Tracing

To get started automatically sending traces you must enable tracing in


Next, you must choose one of two options to configure sampling:

  • Set a uniform sample rate for all transactions, by setting the traces-sample-rate option in your SDK config to a number between 0 and 1. (For example, to send 20% of transactions, set traces-sample-rate to 0.2.)
  • Control the sample rate dynamically, based on the transaction itself and the context in which it's captured, by providing a function to the traces-sampler config option.

Or alternatively:

Configure sample rate in or application.yml file:


Or through providing a bean of type SentryOptions#TracesSamplerCallback:

class CustomTracesSamplerCallback {
  public @NotNull Double sample(@NotNull SamplingContext samplingContext) {
    // return a number between 0 and 1

If either of these options is set, tracing will be enabled in your app, and transactions will start getting captured automatically. (The two options are meant to be mutually exclusive, but if you do set both, traces-sampler will take precedence.)

As you're getting tracing set up, we recommend setting traces-sample-rate to 1, so all created transactions are sent to Sentry. Once you're done with testing, though, you'll probably want to consider either lowering your traces-sample-rate value, or switching to traces-sampler, which will allow you to set the sample rate individually for each transaction. Without sampling, automatically-captured transactions can add up quickly. (The Spring Boot integration, for example, will send a transaction for every request made to the server.) Sampling allows you to send representative data without overwhelming either your system or your Sentry transaction quota.

You can learn more about the traces-sample-rate and traces-sampler options in Sampling Transactions.

You can edit this page on GitHub.