pub enum Aggregation {
Count,
DistinctPublishers,
DistinctValues {
axis: TaxonomyAxis,
key: String,
},
SumNumericTag {
axis_key: String,
},
MinNumericTag {
axis_key: String,
},
MaxNumericTag {
axis_key: String,
},
}Expand description
Per-bucket reduction — once entries are bucketed, this decides what numeric value lands in the row.
Variants§
Count
Number of entries in each bucket. The natural “how many”.
DistinctPublishers
Distinct publisher node_ids contributing to the bucket. An
entry contributing under multiple buckets counts once per
bucket but doesn’t double-count its publisher in any given
bucket.
DistinctValues
Distinct values for the given (axis, key) observed across
entries in the bucket. DistinctValues { axis: Hardware, key: "gpu.vram_gb" } answers “how many distinct GPU memory sizes
are running in this region?”
Fields
axis: TaxonomyAxisTaxonomy axis the value-bearing tag lives in.
SumNumericTag
Sum the numeric value of <axis_key>=<n> tags across the
bucket. The axis_key field is the canonical dotted
axis-key (e.g. "hardware.gpu.count"); only AxisValue
tags whose (axis, key) matches are considered. Values
that don’t parse as u64 are skipped silently. Saturating
addition — overflow caps at u64::MAX rather than
panicking.
MinNumericTag
Minimum observed numeric value of an <axis_key>=<n> tag
across the bucket. Returns 0 when no parseable values are
observed in the bucket (an operator who needs to distinguish
“no values observed” from “min is 0” should use
capacity_ranking with sum_axis_key, which surfaces
Option<u64>).
MaxNumericTag
Maximum observed numeric value of an <axis_key>=<n> tag
across the bucket. Returns 0 when no parseable values are
observed (same caveat as MinNumericTag).
Trait Implementations§
Source§impl Clone for Aggregation
impl Clone for Aggregation
Source§fn clone(&self) -> Aggregation
fn clone(&self) -> Aggregation
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 Aggregation
impl Debug for Aggregation
Source§impl<'de> Deserialize<'de> for Aggregation
impl<'de> Deserialize<'de> for Aggregation
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 Aggregation
impl PartialEq for Aggregation
Source§fn eq(&self, other: &Aggregation) -> bool
fn eq(&self, other: &Aggregation) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for Aggregation
impl Serialize for Aggregation
impl Eq for Aggregation
impl StructuralPartialEq for Aggregation
Auto Trait Implementations§
impl Freeze for Aggregation
impl RefUnwindSafe for Aggregation
impl Send for Aggregation
impl Sync for Aggregation
impl Unpin for Aggregation
impl UnsafeUnpin for Aggregation
impl UnwindSafe for Aggregation
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.