Skip to content

[Dynamic Sampling] Sampling Seed Propagation #735

Open
@lcian

Description

@lcian

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

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: #741

Metadata

Metadata

Assignees

No one assigned

    Labels

    FeatureRequest for a new featureRustSDKSDK parityBehavior that other SDKs provide and we are missing or implement differentlyTraces

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions