Tail Sampling
Keep 100% of errors while sampling success.
What is Tail Sampling?
Traditional sampling decides upfront whether to log. Tail sampling waits until the operation completes, then decides based on the outcome.
| Approach | When Decision Made | Problem |
|---|---|---|
| Head Sampling | Before operation starts | May drop errors |
| Tail Sampling | After operation completes | None — outcome is known |
Why Tail Sampling?
Consider a 10% sampling rate:
With tail sampling:
Configuration
Sampling Decision Order
Tail sampling evaluates conditions in order:
Sampling Reasons
Each sampling decision includes a reason:
This is useful for debugging your sampling configuration.
Use Cases
API Gateway
Sample successful requests but keep all errors:
E-Commerce
Keep everything from paying customers:
Background Jobs
Keep all failed jobs:
Debug Sessions
Full logging for specific users:
Cost Savings
Example: 10M requests/day
| Metric | Value |
|---|---|
| Total requests | 10M/day |
| Error rate | 0.1% (10K errors) |
| Slow requests | 1% (100K slow) |
Without sampling: 10M events/day
With tail sampling (10% success rate):
- Errors: 10K (100%)
- Slow: 100K (100%)
- Success: 989K (10% of 9.89M)
- Total: ~1.1M events/day
Cost reduction: ~89% while keeping 100% of important events.
Next.js Integration
Tail sampling is built into the wide event middleware:
And server actions:
Standalone Sampler
For custom integrations:
Configuration Reference
Related
- Wide Events — Comprehensive event logging
- Next.js Integration — Automatic wide events for Next.js
- Sampling — Traditional head sampling strategies