getsentry / getsentry/sentry-rust
[Dynamic Sampling] Sampling Seed Propagation
- Dominant language
- Rust
- Stars
- 752
- Forks
- 190
- Avg merge
- 1h 21m
- Merged PRs (30d)
- 5
Description
To increase the chance of capturing complete traces when users return a new sample rate tracesSampler in backend services, we propagate the random value used by the SDK for computing the sampling decision instead of creating a new random value in every service. Therefore, across a trace every SDK uses the same random value.
[Spec](https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value)
As the Rust SDK is a backend SDK and we currently don't capture any traces for outgoing network requests, we only need to conform to the spec when it comes to the following points:
- read the incoming `sample_rand` or create one
- make a sampling decision based on the `sample_rand`
- send the `sample_rand` as part of the DSC in envelopes
- update `traces_sampler` to pass the `parent_sample_rate`
A prerequisite to implement this feature is to support Dynamic Sampling via creating, handling and sending the Dynamic Sampling Context, which is tracked here: https://github.com/getsentry/sentry-rust/issues/741
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.