#[non_exhaustive]pub enum MetricStream {
Stdout,
Stderr,
}Expand description
Which of the payload’s output streams a Metric was extracted
from.
Captures WHERE the bytes came from (payload stdout vs stderr).
This matters for diagnosing “surprise metrics” in post-run
analysis: a metric tagged Self::Stderr signals a payload
whose structured output landed on the diagnostic stream —
well-behaved payloads keep stdout canonical per the
OutputFormat doc contract, so a stderr tag is a review hint
(“is this payload misconfigured, or did the fallback
intentionally pick it up?”).
Populated by the extraction pipeline in
crate::scenario::payload_run: the stdout-primary branch
stamps Stdout, the stderr-fallback branch
stamps Stderr. The streams are never merged;
one or the other produces the metric set, and that identity
propagates through Metric::stream.
Status: persisted on the sidecar for future review-tooling
(CI dashboards, cargo ktstr stats-style filters); not yet
consumed by perf-delta or any automated pipeline. The
field is wired end-to-end from the payload-pipeline to the
sidecar JSON today so that downstream review tools can start
filtering on it without a schema change — but no production
consumer reads it yet.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Stdout
Extracted from the payload’s stdout (the happy path for fio / stress-ng / most benchmark tools).
Stderr
Extracted from the payload’s stderr via the stderr-fallback
contract (for payloads that emit structured summaries to
stderr — e.g. schbench’s show_latencies →
fprintf(stderr, ...)).
Trait Implementations§
Source§impl Clone for MetricStream
impl Clone for MetricStream
Source§fn clone(&self) -> MetricStream
fn clone(&self) -> MetricStream
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MetricStream
impl Debug for MetricStream
Source§impl<'de> Deserialize<'de> for MetricStream
impl<'de> Deserialize<'de> for MetricStream
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 MetricStream
impl PartialEq for MetricStream
Source§impl Serialize for MetricStream
impl Serialize for MetricStream
impl Copy for MetricStream
impl Eq for MetricStream
impl StructuralPartialEq for MetricStream
Auto Trait Implementations§
impl Freeze for MetricStream
impl RefUnwindSafe for MetricStream
impl Send for MetricStream
impl Sync for MetricStream
impl Unpin for MetricStream
impl UnwindSafe for MetricStream
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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