pub struct BaseScheduleConfig {Show 15 fields
pub name: String,
pub rate: f64,
pub duration: Option<String>,
pub gaps: Option<GapConfig>,
pub bursts: Option<BurstConfig>,
pub cardinality_spikes: Option<Vec<CardinalitySpikeConfig>>,
pub dynamic_labels: Option<Vec<DynamicLabelConfig>>,
pub labels: Option<HashMap<String, String>>,
pub sink: SinkConfig,
pub phase_offset: Option<String>,
pub clock_group: Option<String>,
pub clock_group_is_auto: Option<bool>,
pub jitter: Option<f64>,
pub jitter_seed: Option<u64>,
pub on_sink_error: OnSinkError,
}Expand description
Shared schedule and delivery fields common to all signal types.
Both ScenarioConfig (metrics) and LogScenarioConfig (logs) embed
this struct via #[serde(flatten)]. It contains every field that is
identical across signal types — everything except the generator
configuration and the encoder default.
New schedule-level fields (rate control, windows, labels, sink, phase offset) should be added here once and automatically propagate to both signal types.
Fields§
§name: StringScenario name (metric name for metrics, identifier for logs).
rate: f64Target event rate in events per second. Must be strictly positive.
duration: Option<String>Optional total run duration (e.g. "30s", "5m"). None means run indefinitely.
gaps: Option<GapConfig>Optional gap window: recurring silent periods in the event stream.
bursts: Option<BurstConfig>Optional burst window: recurring high-rate periods in the event stream.
When both a gap and a burst overlap in time, the gap takes priority.
cardinality_spikes: Option<Vec<CardinalitySpikeConfig>>Optional cardinality spikes: recurring windows that inject dynamic labels to simulate cardinality explosions.
dynamic_labels: Option<Vec<DynamicLabelConfig>>Optional dynamic labels: always-on rotating label values that cycle through a fixed set of values on every tick.
Unlike CardinalitySpikeConfig, dynamic labels are never gated by a
time window — they appear in every emitted event. Use this to simulate
a fleet of N hosts, pods, or regions.
labels: Option<HashMap<String, String>>Static labels attached to every emitted event.
sink: SinkConfigOutput sink. Defaults to stdout.
phase_offset: Option<String>Delay before starting this scenario, relative to the group start time.
Only meaningful in multi-scenario mode. Enables temporal correlation
between scenarios: “metric A starts immediately, metric B starts 30s
later”. Accepts a duration string (e.g. "30s", "1m", "500ms").
clock_group: Option<String>Clock group identifier for multi-scenario correlation.
Scenarios with the same clock_group value share a common start time
reference. For MVP this provides a shared start reference only; advanced
cross-scenario signaling is deferred to a future phase.
clock_group_is_auto: Option<bool>Provenance of Self::clock_group from the v2 compiler.
Populated by crate::compiler::prepare when an entry traverses
the v2 compile pipeline. Carries:
Some(true)— the compiler synthesizedchain_{lowest_lex_id}because theafter:component had no user-suppliedclock_group.Some(false)— the value was adopted from an explicit user assignment (including explicit values that happen to start withchain_).None— the entry did not flow through the v2 compiler (v1 loaders, hand-built configs); display code must not show an(auto)marker.
Hidden from YAML serialization because it is a compiler-derived field, not user-supplied input. Skipped from deserialization for the same reason — round-tripping a config never resurrects this flag.
jitter: Option<f64>Optional jitter amplitude. When set, adds uniform noise in
[-jitter, +jitter] to every generated value. Defaults to None (no jitter).
jitter_seed: Option<u64>Optional seed for jitter noise. Defaults to 0 when absent.
Different seeds produce different noise sequences.
on_sink_error: OnSinkErrorBehavior when a sink write returns an I/O error mid-run.
Trait Implementations§
Source§impl Clone for BaseScheduleConfig
impl Clone for BaseScheduleConfig
Source§fn clone(&self) -> BaseScheduleConfig
fn clone(&self) -> BaseScheduleConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more