Enum Sampler
#[non_exhaustive]pub enum Sampler {
AlwaysOn,
AlwaysOff,
ParentBased(Box<dyn ShouldSample>),
TraceIdRatioBased(f64),
}opentelemetry and trace only.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§
§impl Sampler
impl Sampler
pub 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.
Trait Implementations§
§impl ShouldSample for Sampler
impl ShouldSample for Sampler
§fn should_sample(
&self,
parent_context: Option<&Context>,
trace_id: TraceId,
name: &str,
span_kind: &SpanKind,
attributes: &[KeyValue],
links: &[Link],
) -> SamplingResult
fn should_sample( &self, parent_context: Option<&Context>, trace_id: TraceId, name: &str, span_kind: &SpanKind, attributes: &[KeyValue], links: &[Link], ) -> SamplingResult
Auto Trait Implementations§
impl !RefUnwindSafe for Sampler
impl !UnwindSafe for Sampler
impl Freeze for Sampler
impl Send for Sampler
impl Sync for Sampler
impl Unpin for Sampler
impl UnsafeUnpin for Sampler
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more