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>,
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 ==.