pub struct ShadowMetrics {
pub mirrored: AtomicU64,
pub rate_limited: AtomicU64,
pub failed: AtomicU64,
pub bytes_sent: AtomicU64,
pub delivery_time_us: AtomicU64,
}Expand description
Shadow mirroring metrics (Phase 7).
Fields§
§mirrored: AtomicU64Total requests mirrored to honeypots
rate_limited: AtomicU64Requests skipped due to rate limiting
failed: AtomicU64Requests that failed to deliver to honeypot
bytes_sent: AtomicU64Total bytes sent to honeypots
delivery_time_us: AtomicU64Total delivery time in microseconds
Implementations§
Source§impl ShadowMetrics
impl ShadowMetrics
Sourcepub fn record_success(&self, bytes: u64, delivery_us: u64)
pub fn record_success(&self, bytes: u64, delivery_us: u64)
Records a successful mirror delivery.
Sourcepub fn record_rate_limited(&self)
pub fn record_rate_limited(&self)
Records a rate-limited mirror attempt.
Sourcepub fn record_failed(&self)
pub fn record_failed(&self)
Records a failed mirror delivery.
Sourcepub fn avg_delivery_us(&self) -> f64
pub fn avg_delivery_us(&self) -> f64
Returns the average delivery time in microseconds.
Trait Implementations§
Source§impl Debug for ShadowMetrics
impl Debug for ShadowMetrics
Source§impl Default for ShadowMetrics
impl Default for ShadowMetrics
Source§fn default() -> ShadowMetrics
fn default() -> ShadowMetrics
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for ShadowMetrics
impl RefUnwindSafe for ShadowMetrics
impl Send for ShadowMetrics
impl Sync for ShadowMetrics
impl Unpin for ShadowMetrics
impl UnsafeUnpin for ShadowMetrics
impl UnwindSafe for ShadowMetrics
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for 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> 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 more