Struct opentelemetry::metrics::Meter[][src]

pub struct Meter { /* fields omitted */ }
This is supported on crate feature metrics only.

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

impl Meter[src]

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

Create a new named meter from a sdk implemented core

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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, 
[src]

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

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, 
[src]

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

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, 
[src]

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

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, 
[src]

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

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, 
[src]

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

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, 
[src]

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

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, 
[src]

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

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

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)]);
  })
})?;

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

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)]);
  }
});

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

Atomically record a batch of measurements.

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

Atomically record a batch of measurements with a given context

Trait Implementations

impl Debug for Meter[src]

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

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl !RefUnwindSafe for Meter

impl Send for Meter

impl Sync for Meter

impl Unpin for Meter

impl !UnwindSafe for Meter

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

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

pub fn vzip(self) -> V