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

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]

Auto Trait Implementations

Blanket Implementations

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

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

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

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

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

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

impl<T> Same<T> for T

type Output = T

Should always be Self

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.

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.

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