Skip to main content

ThreadBrokerBuilder

Struct ThreadBrokerBuilder 

Source
pub struct ThreadBrokerBuilder<C: Consumer, P: Producer> { /* private fields */ }
Expand description

Builder for ThreadBroker.

Implementations§

Source§

impl<C: Consumer, P: Producer> ThreadBrokerBuilder<C, P>

Source

pub fn budget(self, threads: usize) -> Self

Total threads to divide. Required.

Source

pub fn initial_producer_slots(self, slots: usize) -> Self

Start the producer at this many slots instead of the coarse default.

The default start is deliberately low, because growth is cheap and many workloads never need decode threads at all. A caller that already knows better — from a previous run, or from an explicit user request — can skip the climb. Still clamped to the per-input floor and the budget.

Source

pub fn steady_state_policy(self, policy: SteadyStatePolicy) -> Self

Choose whether a settled broker keeps watching for regime changes.

See SteadyStatePolicy for the responsiveness/overhead tradeoff.

Source

pub fn sample_interval(self, interval: Duration) -> Self

Source

pub fn steady_probe_interval(self, interval: Duration) -> Self

Set the interval between responsive steady-state probes.

This does not change the high-resolution convergence cadence. The producer is asked to use roughly four monitoring observations per probe, subject to any accuracy floor imposed by its adapter.

Source

pub fn warmup(self, warmup: Duration) -> Self

Source

pub fn smoothing_windows(self, windows: usize) -> Self

Source

pub fn deadband_threads(self, threads: usize) -> Self

Source

pub fn blackout_samples(self, samples: usize) -> Self

Source

pub fn ratify_samples(self, samples: usize) -> Self

Source

pub fn opening_policy(self, policy: OpeningPolicy) -> Self

Source

pub fn regression_tolerance(self, fraction: f64) -> Self

Source

pub fn resurvey_distance(self, threads: usize) -> Self

Source

pub fn resurvey_persistence(self, duration: Duration) -> Self

Source

pub fn resize_timeout(self, timeout: Duration) -> Self

Source

pub fn min_consumer_threads(self, threads: usize) -> Self

Source

pub fn min_producer_slots(self, slots: usize) -> Self

Source

pub fn build(self) -> Result<ThreadBroker<C, P>, BrokerConfigError>

Validate and finish.

§Errors

Rejects a budget too small to split, a zero sampling interval, and a warm-up shorter than two sampling intervals — the last because a broker that decides on one sample is deciding on the startup transient, which is the failure the warm-up exists to prevent.

Auto Trait Implementations§

§

impl<C, P> Freeze for ThreadBrokerBuilder<C, P>
where Arc<C>: Freeze, Arc<P>: Freeze,

§

impl<C, P> RefUnwindSafe for ThreadBrokerBuilder<C, P>

§

impl<C, P> Send for ThreadBrokerBuilder<C, P>
where Arc<C>: Send, Arc<P>: Send,

§

impl<C, P> Sync for ThreadBrokerBuilder<C, P>
where Arc<C>: Sync, Arc<P>: Sync,

§

impl<C, P> Unpin for ThreadBrokerBuilder<C, P>
where Arc<C>: Unpin, Arc<P>: Unpin,

§

impl<C, P> UnsafeUnpin for ThreadBrokerBuilder<C, P>
where Arc<C>: UnsafeUnpin, Arc<P>: UnsafeUnpin,

§

impl<C, P> UnwindSafe for ThreadBrokerBuilder<C, P>
where Arc<C>: UnwindSafe, Arc<P>: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more