pub struct Meter { /* private fields */ }
Available on crate feature metrics only.
Expand description

Meter is the OpenTelemetry metric API, based on a sdk-defined MeterCore implementation and the Meter library name.

§Instruments

NameInstrument kindFunction(argument)Default aggregationNotes
CounterSynchronous adding monotonicAdd(increment)SumPer-request, part of a monotonic sum
UpDownCounterSynchronous addingAdd(increment)SumPer-request, part of a non-monotonic sum
ValueRecorderSynchronousRecord(value)TBD issue 636Per-request, any grouping measurement
SumObserverAsynchronous adding monotonicObserve(sum)SumPer-interval, reporting a monotonic sum
UpDownSumObserverAsynchronous addingObserve(sum)SumPer-interval, reporting a non-monotonic sum
ValueObserverAsynchronousObserve(value)LastValuePer-interval, any grouping measurement

Implementations§

Source§

impl Meter

Source

pub fn new<T: Into<&'static str>>( instrumentation_name: T, instrumentation_version: Option<T>, core: Arc<dyn MeterCore + Send + Sync>, ) -> Self

Create a new named meter from a sdk implemented core

Source

pub fn u64_counter<T>(&self, name: T) -> CounterBuilder<'_, u64>
where T: Into<String>,

Creates a new integer CounterBuilder for u64 values with the given name.

Source

pub fn f64_counter<T>(&self, name: T) -> CounterBuilder<'_, f64>
where T: Into<String>,

Creates a new floating point CounterBuilder for f64 values with the given name.

Source

pub fn i64_up_down_counter<T>(&self, name: T) -> UpDownCounterBuilder<'_, i64>
where T: Into<String>,

Creates a new integer UpDownCounterBuilder for an i64 up down counter with the given name.

Source

pub fn f64_up_down_counter<T>(&self, name: T) -> UpDownCounterBuilder<'_, f64>
where T: Into<String>,

Creates a new floating point UpDownCounterBuilder for an f64 up down counter with the given name.

Source

pub fn i64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, i64>
where T: Into<String>,

Creates a new ValueRecorderBuilder for i64 values with the given name.

Source

pub fn u64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, u64>
where T: Into<String>,

Creates a new ValueRecorderBuilder for u64 values with the given name.

Source

pub fn f64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, f64>
where T: Into<String>,

Creates a new ValueRecorderBuilder for f64 values with the given name.

Source

pub fn u64_sum_observer<T, F>( &self, name: T, callback: F, ) -> SumObserverBuilder<'_, u64>
where T: Into<String>, F: Fn(ObserverResult<u64>) + Send + Sync + 'static,

Creates a new integer SumObserverBuilder for u64 values with the given name and callback

Source

pub fn f64_sum_observer<T, F>( &self, name: T, callback: F, ) -> SumObserverBuilder<'_, f64>
where T: Into<String>, F: Fn(ObserverResult<f64>) + Send + Sync + 'static,

Creates a new floating point SumObserverBuilder for f64 values with the given name and callback

Source

pub fn i64_up_down_sum_observer<T, F>( &self, name: T, callback: F, ) -> UpDownSumObserverBuilder<'_, i64>
where T: Into<String>, F: Fn(ObserverResult<i64>) + Send + Sync + 'static,

Creates a new integer UpDownSumObserverBuilder for i64 values with the given name and callback.

Source

pub fn f64_up_down_sum_observer<T, F>( &self, name: T, callback: F, ) -> UpDownSumObserverBuilder<'_, f64>
where T: Into<String>, F: Fn(ObserverResult<f64>) + Send + Sync + 'static,

Creates a new floating point UpDownSumObserverBuilder for f64 values with the given name and callback

Source

pub fn u64_value_observer<T, F>( &self, name: T, callback: F, ) -> ValueObserverBuilder<'_, u64>
where T: Into<String>, F: Fn(ObserverResult<u64>) + Send + Sync + 'static,

Creates a new integer ValueObserverBuilder for u64 values with the given name and callback

Source

pub fn i64_value_observer<T, F>( &self, name: T, callback: F, ) -> ValueObserverBuilder<'_, i64>
where T: Into<String>, F: Fn(ObserverResult<i64>) + Send + Sync + 'static,

Creates a new integer ValueObserverBuilder for i64 values with the given name and callback

Source

pub fn f64_value_observer<T, F>( &self, name: T, callback: F, ) -> ValueObserverBuilder<'_, f64>
where T: Into<String>, F: Fn(ObserverResult<f64>) + Send + Sync + 'static,

Creates a new floating point ValueObserverBuilder for f64 values with the given name and callback

Source

pub fn build_batch_observer<B, F>(&self, builder: B) -> Result<()>
where B: Fn(BatchObserver<'_>) -> Result<F>, F: Fn(BatchObserverResult) + Send + Sync + 'static,

Creates a new BatchObserver that supports making batches of observations for multiple instruments or returns an error if instrument initialization fails.

§Examples
use opentelemetry::{global, metrics::BatchObserverResult, KeyValue};

let meter = global::meter("test");

meter.build_batch_observer(|batch| {
  let instrument = batch.u64_value_observer("test_instrument").try_init()?;

  Ok(move |result: BatchObserverResult| {
    result.observe(&[KeyValue::new("my-key", "my-value")], &[instrument.observation(1)]);
  })
})?;
Source

pub fn batch_observer<B, F>(&self, builder: B)
where B: Fn(BatchObserver<'_>) -> F, F: Fn(BatchObserverResult) + Send + Sync + 'static,

Creates a new BatchObserver that supports making batches of observations for multiple instruments.

§Panics

Panics if instrument initialization or observer registration returns an error.

§Examples
use opentelemetry::{global, metrics::BatchObserverResult, KeyValue};

let meter = global::meter("test");

meter.batch_observer(|batch| {
  let instrument = batch.u64_value_observer("test_instrument").init();

  move |result: BatchObserverResult| {
    result.observe(&[KeyValue::new("my-key", "my-value")], &[instrument.observation(1)]);
  }
});
Source

pub fn record_batch<T: IntoIterator<Item = Measurement>>( &self, attributes: &[KeyValue], measurements: T, )

Atomically record a batch of measurements.

Source

pub fn record_batch_with_context<T: IntoIterator<Item = Measurement>>( &self, cx: &Context, attributes: &[KeyValue], measurements: T, )

Atomically record a batch of measurements with a given context

Trait Implementations§

Source§

impl Debug for Meter

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Meter

§

impl !RefUnwindSafe for Meter

§

impl Send for Meter

§

impl Sync for Meter

§

impl Unpin for Meter

§

impl !UnwindSafe for Meter

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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>

Available on crate feature trace only.
Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Available on crate feature trace only.
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 T
where 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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 T
where 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