pub struct PhaseMetrics {
pub sample_count: usize,
pub avg_imbalance: Option<f64>,
pub max_imbalance: Option<f64>,
pub avg_dsq_depth: Option<f64>,
pub avg_nr_running: Option<f64>,
pub max_dsq_depth: u32,
pub stall_count: usize,
pub fallback_rate: Option<f64>,
pub keep_last_rate: Option<f64>,
pub iteration_rate: Option<f64>,
}Expand description
Metrics aggregated from monitor samples within a phase.
Fields§
§sample_count: usize§avg_imbalance: Option<f64>Mean CPU-imbalance ratio over the phase’s valid samples. None
when the phase had no valid samples (monitor-only Timeline::build)
or its source bucket carried no avg_imbalance_ratio metric
(snapshot from_phase_buckets) — distinct from a real Some(0.0)
(perfectly balanced). The change detector compares it only when
both sides are Some, so an absent phase never reads as a false
zero-imbalance.
max_imbalance: Option<f64>Peak CPU-imbalance ratio over the phase’s valid samples. None on
the same no-data conditions as Self::avg_imbalance.
avg_dsq_depth: Option<f64>Mean local-DSQ depth over the phase’s valid samples. None on the
same no-data conditions as Self::avg_imbalance.
avg_nr_running: Option<f64>Mean runqueue occupancy (full-class rq.nr_running) over the phase’s
valid samples — per-sample mean of the per-CPU nr_running, averaged
over samples (the avg_dsq_depth shape). None on the same no-data
conditions as Self::avg_imbalance. The run-level value stays
MonitorSummary::avg_nr_running (folded by fold_run_level_ext); this
per-phase field feeds rendering + boundary change-detection only and is
kept out of the run-level ext re-pool (see populate_run_ext_metrics_from_phases).
max_dsq_depth: u32§stall_count: usize§fallback_rate: Option<f64>select_cpu_fallback events per second. None when event counters unavailable.
keep_last_rate: Option<f64>dispatch_keep_last events per second. None when event counters unavailable.
iteration_rate: Option<f64>Worker iterations per second during this phase. Computed from cumulative iteration counts in consecutive stimulus events.
Trait Implementations§
Source§impl Clone for PhaseMetrics
impl Clone for PhaseMetrics
Source§fn clone(&self) -> PhaseMetrics
fn clone(&self) -> PhaseMetrics
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PhaseMetrics
impl Debug for PhaseMetrics
Source§impl Default for PhaseMetrics
impl Default for PhaseMetrics
Source§fn default() -> PhaseMetrics
fn default() -> PhaseMetrics
Auto Trait Implementations§
impl Freeze for PhaseMetrics
impl RefUnwindSafe for PhaseMetrics
impl Send for PhaseMetrics
impl Sync for PhaseMetrics
impl Unpin for PhaseMetrics
impl UnwindSafe for PhaseMetrics
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> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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