Skip to content

Tracing should allow configurable client_sampling and random_sampling #7271

@luckyxkw

Description

@luckyxkw

Contour only allows us to configure overallSampling rate: contourconfig.go#L817.

It will be more useful if we can configure client_sampling and random_sampling as well. Details below:

According to envoy's document, there are three sampling rate controls tracing:

  • Client_sampling: sample rate when x-client-trace-id header is set, default to 100%. This can be used to force generate trace for a specific request
  • Random_sampling: this is the random sample rate for all requests, default to 100%.
  • Overall_sampling: this sample rate is applied to all requests on top of the client_sampling or random_sampling. This means if we have random_sampling = 1/100, and overall_sampling = 1/100, the final randomly SR will be 1/10000. When overall_sampling is less than 100%, x-client-trace-id header does not guarantee to sample the trace.

I think for most people, it makes more sense to have client_sampling=100%, random_sampling={intended random sampling rate}, overall_sampling=100%

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.lifecycle/needs-triageIndicates that an issue needs to be triaged by a project contributor.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions