pub struct SamplingMiddleware { /* private fields */ }Expand description
Sampling middleware for statistical message sampling.
Allows only a percentage of messages to pass through, useful for monitoring, testing, or load reduction.
§Examples
use celers_kombu::SamplingMiddleware;
// Sample 10% of messages
let sampler = SamplingMiddleware::new(0.1);
assert_eq!(sampler.sample_rate(), 0.1);Implementations§
Source§impl SamplingMiddleware
impl SamplingMiddleware
Sourcepub fn new(sample_rate: f64) -> Self
pub fn new(sample_rate: f64) -> Self
Create a new sampling middleware with the given sample rate.
Sample rate should be between 0.0 and 1.0, where:
- 0.0 = sample nothing
- 1.0 = sample everything
- 0.1 = sample approximately 10% of messages
Sourcepub fn sample_rate(&self) -> f64
pub fn sample_rate(&self) -> f64
Get the configured sample rate
Trait Implementations§
Source§impl MessageMiddleware for SamplingMiddleware
impl MessageMiddleware for SamplingMiddleware
Source§fn before_publish<'life0, 'life1, 'async_trait>(
&'life0 self,
_message: &'life1 mut Message,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn before_publish<'life0, 'life1, 'async_trait>(
&'life0 self,
_message: &'life1 mut Message,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Process message before publishing
Auto Trait Implementations§
impl !Freeze for SamplingMiddleware
impl RefUnwindSafe for SamplingMiddleware
impl Send for SamplingMiddleware
impl Sync for SamplingMiddleware
impl Unpin for SamplingMiddleware
impl UnsafeUnpin for SamplingMiddleware
impl UnwindSafe for SamplingMiddleware
Blanket Implementations§
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
Mutably borrows from an owned value. Read more