Skip to content
This repository has been archived by the owner on Aug 14, 2024. It is now read-only.

feat(docs): Clarify rate limiting and trace completeness #1301

Merged
merged 4 commits into from
Jun 6, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions src/docs/dynamic-sampling/the-big-picture.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,18 @@ There is a dedicated rate limit for stored transactions after inbound filters an

</Alert>

## Rate Limiting and Trace Completeness

Dynamic sampling ensures complete traces by retaining all transactions associated with a trace if the head transaction is preserved.

Despite dynamic sampling providing trace completeness, transactions may still be missing from a trace when rate limiting drops one or more transactions. Rate limiting drops transactions without regard for the trace, making each decision independently and potentially resulting in broken traces.
iambriccardo marked this conversation as resolved.
Show resolved Hide resolved

<Alert title="💡 Example" level="info">

For example, if there is a trace from `Project A` to `Project B` and `Project B` is subject to rate limiting, transactions of `Project B` from the trace initiated by `Project A` are likely to be lost.
iambriccardo marked this conversation as resolved.
Show resolved Hide resolved

</Alert>

## Client Side Sampling and Dynamic Sampling

Clients have their own [traces sample rate](https://docs.sentry.io/platforms/javascript/performance/#configure-the-sample-rate). The client sample rate is a number in the range `[0.0, 1.0]` (from 0% to 100%) that controls **how many transactions arrive at Sentry**. While documentation will generally suggest a sample rate of `1.0`, for some use cases it might be better to reduce it.
Expand Down
Loading