pub struct ConfigScope {
pub target_version: Option<String>,
pub target_version_jitter: Option<String>,
pub heartbeat_interval: Option<String>,
pub host_perf_interval: Option<String>,
pub process_perf_enabled: Option<bool>,
pub process_perf_expires_at: Option<DateTime<Utc>>,
pub process_perf_top_n: Option<u32>,
}Expand description
Per-scope partial config. Every field is Option<T>: Some =
set, None = inherit from the next-less-specific scope. Serde
default + skip_serializing_if keeps the wire JSON tight —
unset fields don’t appear in the bucket value.
Fields§
§target_version: Option<String>§target_version_jitter: Option<String>Random sleep window applied at each agent before it starts
downloading a new target_version, so a fleet-wide rollout
doesn’t slam the Object Store / broker all at once
(humantime, e.g. "30m"). "0s" (or unset) = no jitter.
heartbeat_interval: Option<String>§host_perf_interval: Option<String>Cadence for the whole-host perf snapshot loop (host_perf.<pc_id>).
Separate from heartbeat_interval because the host-wide
sysinfo refresh is slightly heavier than the per-process self-
perf one (memory + disk + network counters in addition to CPU)
and gappier data is acceptable for graphing. Default 60 s.
process_perf_enabled: Option<bool>v0.41 / Phase 2: operator-driven opt-in for the heavy per-
process snapshot loop (process_perf.<pc_id>). Default off
because walking the full process table is the most expensive
sysinfo call on Citrix / RDS hosts; flip on only when an
operator is actively investigating a host. Paired with
process_perf_expires_at to auto-disable after a window —
see EffectiveConfig::process_perf_active_at.
process_perf_expires_at: Option<DateTime<Utc>>Wall-clock RFC3339 timestamp after which process_perf_enabled
is considered expired and the agent stops publishing process
snapshots — even if the flag itself is still true. Lets the
SPA toggle “ON for 30 m” without the operator having to come
back and clear the flag manually. None (or the past) +
enabled=true means “indefinitely on” (rare; mostly a test path).
process_perf_top_n: Option<u32>Top-N processes (ordered by CPU%) the agent publishes per tick. 20 by default — enough to cover the usual suspects on a constrained host without ballooning the projector row volume when several PCs are simultaneously in investigation mode.
Implementations§
Trait Implementations§
Source§impl Clone for ConfigScope
impl Clone for ConfigScope
Source§fn clone(&self) -> ConfigScope
fn clone(&self) -> ConfigScope
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConfigScope
impl Debug for ConfigScope
Source§impl Default for ConfigScope
impl Default for ConfigScope
Source§fn default() -> ConfigScope
fn default() -> ConfigScope
Source§impl<'de> Deserialize<'de> for ConfigScopewhere
ConfigScope: Default,
impl<'de> Deserialize<'de> for ConfigScopewhere
ConfigScope: Default,
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>,
impl Eq for ConfigScope
Source§impl PartialEq for ConfigScope
impl PartialEq for ConfigScope
Source§fn eq(&self, other: &ConfigScope) -> bool
fn eq(&self, other: &ConfigScope) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ConfigScope
impl Serialize for ConfigScope
impl StructuralPartialEq for ConfigScope
Auto Trait Implementations§
impl Freeze for ConfigScope
impl RefUnwindSafe for ConfigScope
impl Send for ConfigScope
impl Sync for ConfigScope
impl Unpin for ConfigScope
impl UnsafeUnpin for ConfigScope
impl UnwindSafe for ConfigScope
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.