pub struct AiLoggingEngine { /* private fields */ }Expand description
The per-generation compiled logging engine (DW-081): the enabled flag, sampling rate, retention window, and compiled redactor. Built at dataplane refresh from the published config; immutable once built. Stored on the dataplane behind an ArcSwap and swapped on reload, so a logging change applies to the next request with no restart.
Implementations§
Source§impl AiLoggingEngine
impl AiLoggingEngine
Sourcepub fn compile(cfg: Option<&AiConfig>) -> Option<Self>
pub fn compile(cfg: Option<&AiConfig>) -> Option<Self>
Compile from the ai: config block. None when the block is
absent or the logging sub-block is absent (no capture —
privacy-first). When present, the enabled flag governs
capture; the redactor is always compiled (a disabled engine
still carries one so a per-consumer Some(true) override can
flip capture on without a recompile).
Sourcepub fn sample_rate(&self) -> f64
pub fn sample_rate(&self) -> f64
The configured sampling rate (0.0..=1.0).
Sourcepub fn retention_secs(&self) -> u64
pub fn retention_secs(&self) -> u64
The configured retention window in seconds.
Sourcepub fn capture_for(&self, consumer_override: Option<bool>) -> bool
pub fn capture_for(&self, consumer_override: Option<bool>) -> bool
Resolve whether capture is enabled for a given consumer,
applying the per-consumer override. consumer_override is the
consumer’s ai_logging field: None inherits the global
setting; Some(b) overrides it.
Sourcepub fn should_sample(&self, request_id: &str) -> bool
pub fn should_sample(&self, request_id: &str) -> bool
Deterministic sampling decision for a request id. Returns true
when the request should be captured (the hash of the request id
maps below sample_rate). A rate of 1.0 always captures; 0.0
never captures.
Trait Implementations§
Source§impl Clone for AiLoggingEngine
impl Clone for AiLoggingEngine
Source§fn clone(&self) -> AiLoggingEngine
fn clone(&self) -> AiLoggingEngine
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for AiLoggingEngine
impl RefUnwindSafe for AiLoggingEngine
impl Send for AiLoggingEngine
impl Sync for AiLoggingEngine
impl Unpin for AiLoggingEngine
impl UnwindSafe for AiLoggingEngine
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more