pub struct PayloadConfig {Show 13 fields
pub enabled: bool,
pub window_duration_ms: u64,
pub max_windows: usize,
pub max_endpoints: usize,
pub max_entities: usize,
pub oversize_threshold: f64,
pub bandwidth_spike_threshold: f64,
pub warmup_requests: u32,
pub exfiltration_ratio_threshold: f64,
pub upload_ratio_threshold: f64,
pub min_large_payload_bytes: u64,
pub timeline_max_buckets: usize,
pub anomaly_risk: HashMap<PayloadAnomalyType, f64>,
}Expand description
Configuration for payload profiling.
Fields§
§enabled: boolEnable payload profiling
window_duration_ms: u64Window duration in milliseconds (default: 60000 = 1 minute)
max_windows: usizeMaximum number of windows to keep (default: 60 = 1 hour)
max_endpoints: usizeMaximum endpoints to track (LRU eviction)
max_entities: usizeMaximum entities to track (LRU eviction)
oversize_threshold: f64Threshold for oversized payload detection (multiplier of p99)
bandwidth_spike_threshold: f64Threshold for bandwidth spike detection (multiplier of avg)
warmup_requests: u32Minimum requests before anomaly detection activates
exfiltration_ratio_threshold: f64Threshold for exfiltration pattern (response/request ratio)
upload_ratio_threshold: f64Threshold for upload pattern (request/response ratio)
min_large_payload_bytes: u64Minimum payload size to flag as large (bytes)
timeline_max_buckets: usizeMaximum timeline buckets for bandwidth history
anomaly_risk: HashMap<PayloadAnomalyType, f64>Risk scores per anomaly type
Trait Implementations§
Source§impl Clone for PayloadConfig
impl Clone for PayloadConfig
Source§fn clone(&self) -> PayloadConfig
fn clone(&self) -> PayloadConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PayloadConfig
impl Debug for PayloadConfig
Source§impl Default for PayloadConfig
impl Default for PayloadConfig
Source§impl<'de> Deserialize<'de> for PayloadConfig
impl<'de> Deserialize<'de> for PayloadConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for PayloadConfig
impl RefUnwindSafe for PayloadConfig
impl Send for PayloadConfig
impl Sync for PayloadConfig
impl Unpin for PayloadConfig
impl UnsafeUnpin for PayloadConfig
impl UnwindSafe for PayloadConfig
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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