pub struct ProfilerConfig {
pub enabled: bool,
pub max_profiles: usize,
pub max_schemas: usize,
pub min_samples_for_validation: u32,
pub payload_z_threshold: f64,
pub param_z_threshold: f64,
pub response_z_threshold: f64,
pub min_stddev: f64,
pub type_ratio_threshold: f64,
pub max_type_counts: usize,
pub redact_pii: bool,
pub freeze_after_samples: u32,
}Expand description
Profiler configuration for endpoint behavior learning.
Fields§
§enabled: boolWhether profiling is enabled
max_profiles: usizeMaximum number of endpoint profiles to maintain
max_schemas: usizeMaximum number of learned schemas to maintain
min_samples_for_validation: u32Minimum samples required before validating against profile
payload_z_threshold: f64Z-score threshold for payload size anomaly detection (default: 3.0)
param_z_threshold: f64Z-score threshold for parameter value anomaly detection (default: 4.0)
response_z_threshold: f64Z-score threshold for response size anomaly detection (default: 4.0)
min_stddev: f64Minimum standard deviation for z-score calculation (avoids div/0) (default: 0.01)
type_ratio_threshold: f64Ratio threshold for type-based anomaly detection (default: 0.9) If >90% of values are numeric, flag non-numeric as anomaly
max_type_counts: usizeMaximum number of type categories per parameter (prevents memory exhaustion)
redact_pii: boolRedact PII values in anomaly descriptions (default: true)
freeze_after_samples: u32Freeze baseline after this many samples (prevents model poisoning) Set to 0 to disable (continuous learning). Default: 0 (disabled)
Trait Implementations§
Source§impl Clone for ProfilerConfig
impl Clone for ProfilerConfig
Source§fn clone(&self) -> ProfilerConfig
fn clone(&self) -> ProfilerConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProfilerConfig
impl Debug for ProfilerConfig
Source§impl Default for ProfilerConfig
impl Default for ProfilerConfig
Source§impl<'de> Deserialize<'de> for ProfilerConfig
impl<'de> Deserialize<'de> for ProfilerConfig
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>,
Source§impl JsonSchema for ProfilerConfig
impl JsonSchema for ProfilerConfig
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for ProfilerConfig
impl RefUnwindSafe for ProfilerConfig
impl Send for ProfilerConfig
impl Sync for ProfilerConfig
impl Unpin for ProfilerConfig
impl UnsafeUnpin for ProfilerConfig
impl UnwindSafe for ProfilerConfig
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
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>
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>
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)
&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)
&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>
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