Skip to main content

How does transaction sampling work?

Issue

I set a traces sample rate, for example 0.1 (10%), but the ratio of accepted to dropped transactions in my Sentry stats does not match that percentage. I expected roughly 10% of my transactions to be sent and the numbers look off.

Applies To

  • All SaaS Customers and Self-Hosted Users

  • Filtering and Sampling

  • All SDKs

Resolution

tracesSampleRate does not apply to your total transaction volume. With a rate of 0.1, Sentry does not send exactly 1 out of every 10 transactions. Instead, Sentry applies the rate to each transaction individually, so every transaction has a 10% chance of being kept.

If Sentry keeps more or fewer transactions than you expect, check these factors, ordered by how often they explain the mismatch:

  • Volume: lower tracesSampleRate to reduce the number of accepted transactions.

  • Decision precedence: in distributed tracing, the sampling decision is made once at the head of the trace and propagates to downstream services, so an upstream service can decide whether the whole trace is kept.

  • Cached or older app versions: users on a previous release may still send transactions at an old tracesSampleRate.

Did this answer your question?