pub struct PipelineCounters {
pub events_ingested: AtomicU64,
pub events_emitted: AtomicU64,
pub events_dropped: AtomicU64,
pub cycles: AtomicU64,
pub last_cycle_duration_ns: AtomicU64,
pub total_batches: AtomicU64,
pub checkpoints_completed: AtomicU64,
pub checkpoints_failed: AtomicU64,
pub last_checkpoint_duration_ms: AtomicU64,
pub checkpoint_epoch: AtomicU64,
/* private fields */
}Expand description
Shared atomic counters incremented by the pipeline processing loop.
Counters are separated into two groups on different cache lines to prevent false sharing between Ring 0 (hot path) and Ring 2 (checkpoint):
- Ring 0 group (
events_ingested…total_batches): incremented on every processing cycle from the reactor thread. - Ring 2 group (
checkpoints_completed…checkpoint_epoch): updated from the async checkpoint coordinator.
All reads and writes use Ordering::Relaxed — metrics are advisory,
not transactional.
Fields§
§events_ingested: AtomicU64Total events ingested from sources.
events_emitted: AtomicU64Total events emitted to streams/sinks.
events_dropped: AtomicU64Total events dropped (e.g. backpressure).
cycles: AtomicU64Total processing cycles completed.
last_cycle_duration_ns: AtomicU64Duration of the last processing cycle in nanoseconds.
total_batches: AtomicU64Total batches processed.
checkpoints_completed: AtomicU64Total checkpoints completed successfully.
checkpoints_failed: AtomicU64Total checkpoints that failed.
last_checkpoint_duration_ms: AtomicU64Duration of the last checkpoint in milliseconds.
checkpoint_epoch: AtomicU64Current checkpoint epoch.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for PipelineCounters
impl RefUnwindSafe for PipelineCounters
impl Send for PipelineCounters
impl Sync for PipelineCounters
impl Unpin for PipelineCounters
impl UnsafeUnpin for PipelineCounters
impl UnwindSafe for PipelineCounters
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
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>
Converts
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>
Converts
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.