#[non_exhaustive]pub struct ThreadGroup {
pub key: String,
pub thread_count: usize,
pub metrics: BTreeMap<String, Aggregated>,
pub cgroup_stats: Option<CgroupStats>,
pub members: Vec<String>,
pub avg_start_ticks: u64,
}Expand description
Aggregated metrics for every thread matched by one group key.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.key: String§thread_count: usize§metrics: BTreeMap<String, Aggregated>Metric name → aggregated value. Entries are created for every registered metric; absent keys signal a missed aggregation step, not a skip.
cgroup_stats: Option<CgroupStats>Only populated when grouping by cgroup — carries the cgroup v2 enrichment counters (cpu.stat, memory.current) for that path. Nested here so the renderer can surface them alongside the thread-metric rows without a second lookup.
members: Vec<String>Distinct member literals contained in this bucket, sorted
ascending. The field carries comm literals under
super::GroupBy::Comm and pcomm literals under
super::GroupBy::Pcomm — both groupings feed the grex
display-label path the same way (each pattern-aware bucket
renders a regex over the union of its members across
baseline + candidate, only when built with the
pretty-labels feature; default builds render the join key
unchanged). Empty Vec for groupings that
render the join key directly: super::GroupBy::Cgroup,
super::GroupBy::CommExact, or pattern-aware groupings under
super::CompareOptions::no_thread_normalize where the join key
IS the literal name and there is nothing to expand into a
regex.
avg_start_ticks: u64Average start_time_clock_ticks across group members. Lower = older = the group has been alive longer on average.
Trait Implementations§
Source§impl Clone for ThreadGroup
impl Clone for ThreadGroup
Source§fn clone(&self) -> ThreadGroup
fn clone(&self) -> ThreadGroup
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ThreadGroup
impl RefUnwindSafe for ThreadGroup
impl Send for ThreadGroup
impl Sync for ThreadGroup
impl Unpin for ThreadGroup
impl UnwindSafe for ThreadGroup
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