pub struct BasicController(_);
Available on crate feature metrics only.
Expand description

Organizes and synchronizes collection of metric data in both “pull” and “push” configurations.

This supports two distinct modes:

  • Push and Pull: start must be called to begin calling the exporter; collect is called periodically after starting the controller.
  • Pull-Only: start is optional in this case, to call collect periodically. If start is not called, collect can be called manually to initiate collection.

The controller supports mixing push and pull access to metric data using the InstrumentationLibraryReader interface.

Implementations§

source§

impl BasicController

source

pub fn start<T>(&self, cx: &Context, rt: T) -> Result<(), MetricsError>where T: Runtime,

This begins a ticker that periodically collects and exports metrics with the configured interval.

This is required for calling a configured MetricsExporter (see BasicControllerBuilder::with_exporter) and is otherwise optional when only pulling metric data.

The passed in context is passed to collect and subsequently to asynchronous instrument callbacks. Returns an error when the controller was already started.

Note that it is not necessary to start a controller when only pulling data; use the collect and try_for_each methods directly in this case.

source

pub fn stop(&self, cx: &Context) -> Result<(), MetricsError>

This waits for the background worker to return and then collects and exports metrics one last time before returning.

The passed context is passed to the final collect and subsequently to the final asynchronous instruments.

Note that stop will not cancel an ongoing collection or export.

source

pub fn is_running(&self) -> bool

true if the controller was started via start, indicating that the current Reader is being kept up-to-date.

source

pub fn collect(&self, cx: &Context) -> Result<(), MetricsError>

Requests a collection.

The collection will be skipped if the last collection is aged less than the configured collection period.

source

pub fn resource(&self) -> &Resource

Get a reference to the current resource.

Trait Implementations§

source§

impl Clone for BasicController

source§

fn clone(&self) -> BasicController

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 BasicController

source§

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

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

impl InstrumentationLibraryReader for BasicController

source§

fn try_for_each( &self, f: &mut dyn FnMut(&InstrumentationLibrary, &mut dyn Reader) -> Result<(), MetricsError> ) -> Result<(), MetricsError>

ForEach calls the passed function once per instrumentation library, allowing the caller to emit metrics grouped by the library that produced them.
source§

impl MeterProvider for BasicController

source§

fn versioned_meter( &self, name: &'static str, version: Option<&'static str>, schema_url: Option<&'static str> ) -> Meter

Creates an implementation of the Meter interface. Read more
source§

fn meter(&self, name: &'static str) -> Meter

Creates a named Meter instance.

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · 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, U> Into<U> for Twhere U: From<T>,

const: unstable · 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.
const: unstable · 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.
const: unstable · 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