pub struct BrokerReport {Show 43 fields
pub steady_state_policy: SteadyStatePolicy,
pub monitoring_stopped_after_convergence: bool,
pub controller_samples: u64,
pub controller_elapsed: Duration,
pub controller_cpu_nanos: Option<u64>,
pub controller_cpu_accounting_failures: usize,
pub steady_probe_interval: Duration,
pub opening_bracket: OpeningBracketReport,
pub consumer_trajectory: Vec<usize>,
pub producer_trajectory: Vec<usize>,
pub actual_consumer_trajectory: Vec<usize>,
pub actual_producer_trajectory: Vec<usize>,
pub trajectory_elapsed: Vec<Duration>,
pub cap_trajectory: Vec<CapObservation>,
pub throughput_trace: Vec<f64>,
pub throughput_trace_dropped: usize,
pub trace_samples_dropped: usize,
pub moves: usize,
pub reverts: usize,
pub nonlinear_probes: usize,
pub nonlinear_probe_improvements: usize,
pub nonlinear_override: bool,
pub inconclusive_ratifications: usize,
pub resurveys: usize,
pub rejected_windows: usize,
pub flow_transient_windows: usize,
pub source_bound_samples: usize,
pub inelastic_samples: usize,
pub pressure_vetoed_shrinks: usize,
pub time_to_converge: Option<Duration>,
pub final_consumer_threads: usize,
pub final_producer_limit: usize,
pub final_consumer_live: usize,
pub final_producer_active: usize,
pub peak_controlled_slots: usize,
pub peak_auxiliary_threads: usize,
pub producer_measurement: Option<ProducerMeasurementStats>,
pub rejections: Vec<Rejection>,
pub final_epoch: u64,
pub final_phase: BrokerPhase,
pub current_drift: Duration,
pub terminal_error: Option<String>,
pub final_model: Option<Model>,
}Expand description
What the broker did, for logging and for tests.
Fields§
§steady_state_policy: SteadyStatePolicyConfigured behavior after the first stable split.
monitoring_stopped_after_convergence: boolTrue when the controller terminated itself at convergence instead of
continuing to sample until the application called finish.
controller_samples: u64Number of controller wakeups, including startup warm-up windows.
controller_elapsed: DurationWall time for which the controller remained alive.
controller_cpu_nanos: Option<u64>Controller thread CPU time across its complete lifetime. This is measured with only one thread-clock read at start and one at exit.
controller_cpu_accounting_failures: usizeController thread-clock reads that failed.
steady_probe_interval: DurationEffective cadence between responsive steady-state probes.
opening_bracket: OpeningBracketReportCost and result of the optional startup-only opening bracket.
consumer_trajectory: Vec<usize>Consumer threads at each decision, in order.
producer_trajectory: Vec<usize>Producer limit at each decision, in order.
actual_consumer_trajectory: Vec<usize>Actual live/active occupancy observed at every recorded sample.
actual_producer_trajectory: Vec<usize>§trajectory_elapsed: Vec<Duration>Controller elapsed time for each retained trajectory point.
cap_trajectory: Vec<CapObservation>Times at which the inferred producer ceiling or its evidence changed.
throughput_trace: Vec<f64>Real pipeline-throughput windows retained while a decision was open. Steady-state probes are excluded, so this remains bounded startup or resurvey evidence rather than recurring telemetry overhead.
throughput_trace_dropped: usize§trace_samples_dropped: usizeOldest samples discarded after reaching trace_capacity.
moves: usizeSplits applied, including reverts.
reverts: usizeMoves undone because throughput got worse.
nonlinear_probes: usizeGuarded local candidates attempted after the opening rejected or could not distinguish the model’s differing answer.
nonlinear_probe_improvements: usizeProbe targets retained because their throughput confidence interval was strictly better than the previous split.
nonlinear_override: boolWhether the final split is held by measured opening-bracket evidence rather than the allocation-independent cost model.
inconclusive_ratifications: usizeRatifications whose uncertainty interval could not establish a regression or a clear non-regression.
resurveys: usizeTimes a settled split was re-opened by a detected regime change.
rejected_windows: usizeWindows discarded as carrying too little work to estimate a rate from.
flow_transient_windows: usizeOtherwise-usable windows rejected because producer buffers filled or drained materially, so the two stages did not process equivalent work.
source_bound_samples: usizeSamples where the run was source-bound rather than decode-bound.
inelastic_samples: usizeSamples where the producer could not use more concurrency at all.
pressure_vetoed_shrinks: usizeModel-requested producer shrinks vetoed because runnable producer work was still queued behind the current limit.
time_to_converge: Option<Duration>Time from the end of warm-up until the split stopped changing.
Measured to the last actual change of allocation, not to the moment the controller last stopped deliberating. Those differ: a settled split can be re-opened by drift, re-solved, and left exactly where it was. That is a decision being reconsidered, not an allocation moving, and reporting it as a fresh convergence is misleading in the direction that matters — it makes a stable run look unstable.
Measured on a 2.3 billion read Flex run at -t 64: the split reached
25 decode slots about two seconds in and never moved again for the
remaining 111 seconds, while a single harmless resurvey made this field
read 87 seconds.
final_consumer_threads: usizeFinal split.
final_producer_limit: usize§final_consumer_live: usizeActual controlled occupancy observed when the controller stopped. Under freeze-after-convergence this is earlier than application shutdown.
final_producer_active: usize§peak_controlled_slots: usizeLargest observed sum of live consumer workers and active producer slots.
peak_auxiliary_threads: usizePeak live threads explicitly outside the controlled slot budget: the controller itself plus producer-reported coordinators/optional samplers.
producer_measurement: Option<ProducerMeasurementStats>Producer measurement diagnostics. Native cumulative counters report zero samples and observation time; sampled adapters also report their cadence and sampler CPU.
rejections: Vec<Rejection>Rejected targets and the workload epoch in which they failed.
final_epoch: u64§final_phase: BrokerPhase§current_drift: Duration§terminal_error: Option<String>§final_model: Option<Model>Last solved model, for diagnosing a split that looks wrong.