#[non_exhaustive]pub enum Sampler {
AlwaysOn,
AlwaysOff,
ParentBased(Box<dyn ShouldSample>),
TraceIdRatioBased(f64),
}Expand description
Default Sampling options
The built-in samplers allow for simple decisions. For more complex scenarios consider
implementing your own sampler using ShouldSample trait.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
AlwaysOn
Always sample the trace
AlwaysOff
Never sample the trace
ParentBased(Box<dyn ShouldSample>)
Respects the parent span’s sampling decision or delegates a delegate sampler for root spans.
TraceIdRatioBased(f64)
Sample a given fraction of traces. Fractions >= 1 will always sample. If the parent span is
sampled, then it’s child spans will automatically be sampled. Fractions < 0 are treated as
zero, but spans may still be sampled if their parent is.
Note: If this is used then all Spans in a trace will become sampled assuming that the
first span is sampled as it is based on the trace_id not the span_id
Implementations§
Source§impl Sampler
impl Sampler
Sourcepub fn parent_based(
root: impl Into<Box<dyn ShouldSample>>,
) -> ParentBasedSampler
pub fn parent_based( root: impl Into<Box<dyn ShouldSample>>, ) -> ParentBasedSampler
Create a ParentBasedSampler with root as the sampler used for spans with
no parent or an invalid parent.
Sampler::ParentBased only lets you configure that one root case; the other 4
branches defined by the ParentBased sampler spec (remote/local parent,
sampled/not-sampled) are fixed to the spec defaults. Use this instead when you
need to override any of those, via ParentBasedSampler’s with_* methods.