pub struct Metric { /* private fields */ }Expand description
Something that tracks a value of interest (metric) during execution.
Typically Metrics are not created directly, but instead
are created using MetricBuilder or methods on
ExecutionPlanMetricsSet.
use datafusion_physical_expr_common::metrics::*;
let metrics = ExecutionPlanMetricsSet::new();
assert!(metrics.clone_inner().output_rows().is_none());
// Create a counter to increment using the MetricBuilder
let partition = 1;
let output_rows = MetricBuilder::new(&metrics).output_rows(partition);
// Counter can be incremented
output_rows.add(13);
// The value can be retrieved directly:
assert_eq!(output_rows.value(), 13);
// As well as from the metrics set
assert_eq!(metrics.clone_inner().output_rows(), Some(13));Implementations§
Source§impl Metric
impl Metric
Sourcepub fn new(value: MetricValue, partition: Option<usize>) -> Metric
pub fn new(value: MetricValue, partition: Option<usize>) -> Metric
Create a new Metric. Consider using MetricBuilder
rather than this function directly.
Sourcepub fn new_with_labels(
value: MetricValue,
partition: Option<usize>,
labels: Vec<Label>,
) -> Metric
pub fn new_with_labels( value: MetricValue, partition: Option<usize>, labels: Vec<Label>, ) -> Metric
Create a new Metric. Consider using MetricBuilder
rather than this function directly.
Sourcepub fn with_type(self, metric_type: MetricType) -> Metric
pub fn with_type(self, metric_type: MetricType) -> Metric
Set the type for this metric. Defaults to MetricType::Dev
Sourcepub fn with_category(self, category: MetricCategory) -> Metric
pub fn with_category(self, category: MetricCategory) -> Metric
Set the semantic category for this metric.
See MetricCategory for details on the determinism properties
of each category.
Sourcepub fn with_label(self, label: Label) -> Metric
pub fn with_label(self, label: Label) -> Metric
Add a new label to this metric
Sourcepub fn value(&self) -> &MetricValue
pub fn value(&self) -> &MetricValue
Return a reference to the value of this metric
Sourcepub fn value_mut(&mut self) -> &mut MetricValue
pub fn value_mut(&mut self) -> &mut MetricValue
Return a mutable reference to the value of this metric
Sourcepub fn metric_type(&self) -> MetricType
pub fn metric_type(&self) -> MetricType
Return the metric type (verbosity level) associated with this metric
Sourcepub fn metric_category(&self) -> Option<MetricCategory>
pub fn metric_category(&self) -> Option<MetricCategory>
Return the metric category, if one was declared.
None means the metric is always included (except in none mode).
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Metric
impl !UnwindSafe for Metric
impl Freeze for Metric
impl Send for Metric
impl Sync for Metric
impl Unpin for Metric
impl UnsafeUnpin for Metric
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> 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