pub struct BaselineMetrics { /* private fields */ }
Expand description

Helper for creating and tracking common “baseline” metrics for each operator

Example:

use datafusion::physical_plan::metrics::{BaselineMetrics, ExecutionPlanMetricsSet};
let metrics = ExecutionPlanMetricsSet::new();

let partition = 2;
let baseline_metrics = BaselineMetrics::new(&metrics, partition);

// during execution, in CPU intensive operation:
let timer = baseline_metrics.elapsed_compute().timer();
// .. do CPU intensive work
timer.done();

// when operator is finished:
baseline_metrics.done();

Implementations§

source§

impl BaselineMetrics

source

pub fn new(metrics: &ExecutionPlanMetricsSet, partition: usize) -> Self

Create a new BaselineMetric structure, and set start_time to now

source

pub fn intermediate(&self) -> BaselineMetrics

Returns a BaselineMetrics that updates the same elapsed_compute ignoring all other metrics

This is useful when an operator offloads some of its intermediate work to separate tasks that as a result won’t be recorded by Self::record_poll

source

pub fn elapsed_compute(&self) -> &Time

return the metric for cpu time spend in this operator

source

pub fn output_rows(&self) -> &Count

return the metric for the total number of output rows produced

source

pub fn done(&self)

Records the fact that this operator’s execution is complete (recording the end_time metric).

Note care should be taken to call done() manually if BaselineMetrics is not dropped immediately upon operator completion, as async streams may not be dropped immediately depending on the consumer.

source

pub fn record_output(&self, num_rows: usize)

Record that some number of rows have been produced as output

See the RecordOutput for conveniently recording record batch output for other thing

source

pub fn try_done(&self)

If not previously recorded done(), record

source

pub fn record_poll( &self, poll: Poll<Option<Result<RecordBatch>>> ) -> Poll<Option<Result<RecordBatch>>>

Process a poll result of a stream producing output for an operator, recording the output rows and stream done time and returning the same poll result

Trait Implementations§

source§

impl Clone for BaselineMetrics

source§

fn clone(&self) -> BaselineMetrics

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BaselineMetrics

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for BaselineMetrics

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V