pub struct LoopMetrics { /* private fields */ }Expand description
Standardized per-loop observations.
Implementations§
Source§impl LoopMetrics
impl LoopMetrics
Sourcepub fn new(name: &'static str) -> Arc<Self>
pub fn new(name: &'static str) -> Arc<Self>
Construct a metrics handle for a loop named name (e.g.
"rebalancer_loop"). The name appears as the prefix of every
emitted metric; use snake_case and include the _loop
suffix to match the checklist vocabulary.
pub fn name(&self) -> &'static str
Sourcepub fn observe(&self, duration: Duration)
pub fn observe(&self, duration: Duration)
Record a completed tick. Increments iterations_total and
stores the duration for the last_iteration_duration_seconds
gauge. Call regardless of success/failure — errors are tracked
separately via record_error.
Sourcepub fn record_error(&self, kind: &'static str)
pub fn record_error(&self, kind: &'static str)
Increment the counter for an error kind. kind must be a short
bounded label — never a formatted error string.
Sourcepub fn set_up(&self, up: bool)
pub fn set_up(&self, up: bool)
Mark the loop up (driver task is running) or down (driver exited or not yet spawned).
pub fn iterations_total(&self) -> u64
pub fn last_iteration_duration(&self) -> Duration
pub fn is_up(&self) -> bool
pub fn errors_snapshot(&self) -> BTreeMap<&'static str, u64>
Sourcepub fn render_prom(&self, out: &mut String)
pub fn render_prom(&self, out: &mut String)
Append Prometheus-format exposition for this loop to out.
Emits HELP/TYPE headers plus one sample per metric.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for LoopMetrics
impl RefUnwindSafe for LoopMetrics
impl Send for LoopMetrics
impl Sync for LoopMetrics
impl Unpin for LoopMetrics
impl UnsafeUnpin for LoopMetrics
impl UnwindSafe for LoopMetrics
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
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> 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>
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
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.