pub struct BatchTransform { /* private fields */ }Expand description
Groups envelopes into batches by maximum count and/or maximum time window.
When either limit is reached, the batch is emitted as a single envelope
whose payload contains an array of the original payloads under the
configured payload_key.
§Meta derivation
The emitted envelope inherits meta from the first envelope in the batch.
Its key is set to batch-{first_timestamp_ms} so downstream sinks
that require a key have a deterministic value.
§Acknowledgement
Because channels are the acknowledgement boundary, the batched envelope is acknowledged only when downstream work for it completes. This in turn acknowledges every constituent envelope, since none are released until the batch envelope is delivered to the next stage.
§Cancellation
By default (flush_on_cancel = true), any partial batch is flushed
immediately when the cancellation token fires. When set to false,
partial batches are dropped on cancellation.
Implementations§
Trait Implementations§
Source§impl Transform for BatchTransform
impl Transform for BatchTransform
fn id(&self) -> &str
Source§fn set_node_ctx(&mut self, ctx: NodeCtx)
fn set_node_ctx(&mut self, ctx: NodeCtx)
spawn_pipeline after the transform is built but before it
runs. Default no-op — full-control transforms that want
metrics override this and store the ctx; BasicTransform
already does so for the common path.fn run<'async_trait>(
self: Box<Self>,
rx: Receiver<Envelope>,
tx: Sender<Envelope>,
cancel: CancellationToken,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
Auto Trait Implementations§
impl Freeze for BatchTransform
impl !RefUnwindSafe for BatchTransform
impl Send for BatchTransform
impl Sync for BatchTransform
impl Unpin for BatchTransform
impl UnsafeUnpin for BatchTransform
impl !UnwindSafe for BatchTransform
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
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request