getsentry / getsentry/sentry-rust

[Dynamic Sampling] Sampling Seed Propagation

Open
#735 1 comment 0 reactions 0 assignees View on GitHub
Feature Rust SDK parity Traces
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.