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

A MetricReader that continuously collects and exports metric data at a set interval.

By default it will collect and export data every 60 seconds, and will cancel export attempts that exceed 30 seconds. The export time is not counted towards the interval between attempts.

The collect method of the returned continues to gather and return metric data to the user. It will not automatically send that data to the exporter outside of the predefined interval.

The runtime can be selected based on feature flags set for this crate.

The exporter can be any exporter that implements PushMetricsExporter such as opentelemetry-otlp.

Example

use opentelemetry_sdk::metrics::PeriodicReader;

let exporter = get_exporter(); // set up a push exporter like OTLP
let runtime = get_runtime(); // select runtime: e.g. opentelemetry_sdk:runtime::Tokio

let reader = PeriodicReader::builder(exporter, runtime).build();

Implementations§

source§

impl PeriodicReader

source

pub fn builder<E, RT>(exporter: E, runtime: RT) -> PeriodicReaderBuilder<E, RT>where E: PushMetricsExporter, RT: Runtime,

Configuration options for a periodic reader

Trait Implementations§

source§

impl AggregationSelector for PeriodicReader

source§

fn aggregation(&self, kind: InstrumentKind) -> Aggregation

Selects the aggregation and the parameters to use for that aggregation based on the InstrumentKind.
source§

impl Clone for PeriodicReader

source§

fn clone(&self) -> PeriodicReader

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 PeriodicReader

source§

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

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

impl MetricReader for PeriodicReader

source§

fn register_pipeline(&self, pipeline: Weak<Pipeline>)

Registers a MetricReader with a [Pipeline]. Read more
source§

fn register_producer(&self, producer: Box<dyn MetricProducer>)

Registers a an external Producer with this MetricReader. Read more
source§

fn collect(&self, rm: &mut ResourceMetrics) -> Result<(), MetricsError>

Gathers and returns all metric data related to the MetricReader from the SDK and stores it in the provided ResourceMetrics reference. Read more
source§

fn force_flush(&self, _cx: &Context) -> Result<(), MetricsError>

Flushes all metric measurements held in an export pipeline. Read more
source§

fn shutdown(&self) -> Result<(), MetricsError>

Flushes all metric measurements held in an export pipeline and releases any held computational resources. Read more
source§

impl TemporalitySelector for PeriodicReader

source§

fn temporality(&self, kind: InstrumentKind) -> Temporality

Selects the temporality to use based on the InstrumentKind.

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> FutureExt for T

source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> 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.
source§

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

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more