pub struct Meter { /* private fields */ }metrics only.Expand description
Meter is the OpenTelemetry metric API, based on a sdk-defined MeterCore
implementation and the Meter library name.
§Instruments
| Name | Instrument kind | Function(argument) | Default aggregation | Notes |
|---|---|---|---|---|
| Counter | Synchronous adding monotonic | Add(increment) | Sum | Per-request, part of a monotonic sum |
| UpDownCounter | Synchronous adding | Add(increment) | Sum | Per-request, part of a non-monotonic sum |
| ValueRecorder | Synchronous | Record(value) | TBD issue 636 | Per-request, any grouping measurement |
| SumObserver | Asynchronous adding monotonic | Observe(sum) | Sum | Per-interval, reporting a monotonic sum |
| UpDownSumObserver | Asynchronous adding | Observe(sum) | Sum | Per-interval, reporting a non-monotonic sum |
| ValueObserver | Asynchronous | Observe(value) | LastValue | Per-interval, any grouping measurement |
Implementations§
Source§impl Meter
impl Meter
Sourcepub fn new<T: Into<&'static str>>(
instrumentation_name: T,
instrumentation_version: Option<T>,
core: Arc<dyn MeterCore + Send + Sync>,
) -> Self
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
Sourcepub fn u64_counter<T>(&self, name: T) -> CounterBuilder<'_, u64>
pub fn u64_counter<T>(&self, name: T) -> CounterBuilder<'_, u64>
Creates a new integer CounterBuilder for u64 values with the given name.
Sourcepub fn f64_counter<T>(&self, name: T) -> CounterBuilder<'_, f64>
pub fn f64_counter<T>(&self, name: T) -> CounterBuilder<'_, f64>
Creates a new floating point CounterBuilder for f64 values with the given name.
Sourcepub fn i64_up_down_counter<T>(&self, name: T) -> UpDownCounterBuilder<'_, i64>
pub fn i64_up_down_counter<T>(&self, name: T) -> UpDownCounterBuilder<'_, i64>
Creates a new integer UpDownCounterBuilder for an i64 up down counter with the given name.
Sourcepub fn f64_up_down_counter<T>(&self, name: T) -> UpDownCounterBuilder<'_, f64>
pub fn f64_up_down_counter<T>(&self, name: T) -> UpDownCounterBuilder<'_, f64>
Creates a new floating point UpDownCounterBuilder for an f64 up down counter with the given name.
Sourcepub fn i64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, i64>
pub fn i64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, i64>
Creates a new ValueRecorderBuilder for i64 values with the given name.
Sourcepub fn u64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, u64>
pub fn u64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, u64>
Creates a new ValueRecorderBuilder for u64 values with the given name.
Sourcepub fn f64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, f64>
pub fn f64_value_recorder<T>(&self, name: T) -> ValueRecorderBuilder<'_, f64>
Creates a new ValueRecorderBuilder for f64 values with the given name.
Sourcepub fn u64_sum_observer<T, F>(
&self,
name: T,
callback: F,
) -> SumObserverBuilder<'_, u64>
pub fn u64_sum_observer<T, F>( &self, name: T, callback: F, ) -> SumObserverBuilder<'_, u64>
Creates a new integer SumObserverBuilder for u64 values with the given
name and callback
Sourcepub fn f64_sum_observer<T, F>(
&self,
name: T,
callback: F,
) -> SumObserverBuilder<'_, f64>
pub fn f64_sum_observer<T, F>( &self, name: T, callback: F, ) -> SumObserverBuilder<'_, f64>
Creates a new floating point SumObserverBuilder for f64 values with the
given name and callback
Sourcepub fn i64_up_down_sum_observer<T, F>(
&self,
name: T,
callback: F,
) -> UpDownSumObserverBuilder<'_, i64>
pub fn i64_up_down_sum_observer<T, F>( &self, name: T, callback: F, ) -> UpDownSumObserverBuilder<'_, i64>
Creates a new integer UpDownSumObserverBuilder for i64 values with the
given name and callback.
Sourcepub fn f64_up_down_sum_observer<T, F>(
&self,
name: T,
callback: F,
) -> UpDownSumObserverBuilder<'_, f64>
pub fn f64_up_down_sum_observer<T, F>( &self, name: T, callback: F, ) -> UpDownSumObserverBuilder<'_, f64>
Creates a new floating point UpDownSumObserverBuilder for f64 values
with the given name and callback
Sourcepub fn u64_value_observer<T, F>(
&self,
name: T,
callback: F,
) -> ValueObserverBuilder<'_, u64>
pub fn u64_value_observer<T, F>( &self, name: T, callback: F, ) -> ValueObserverBuilder<'_, u64>
Creates a new integer ValueObserverBuilder for u64 values with the given
name and callback
Sourcepub fn i64_value_observer<T, F>(
&self,
name: T,
callback: F,
) -> ValueObserverBuilder<'_, i64>
pub fn i64_value_observer<T, F>( &self, name: T, callback: F, ) -> ValueObserverBuilder<'_, i64>
Creates a new integer ValueObserverBuilder for i64 values with the given
name and callback
Sourcepub fn f64_value_observer<T, F>(
&self,
name: T,
callback: F,
) -> ValueObserverBuilder<'_, f64>
pub fn f64_value_observer<T, F>( &self, name: T, callback: F, ) -> ValueObserverBuilder<'_, f64>
Creates a new floating point ValueObserverBuilder for f64 values with
the given name and callback
Sourcepub fn build_batch_observer<B, F>(&self, builder: B) -> Result<()>
pub fn build_batch_observer<B, F>(&self, builder: B) -> Result<()>
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)]);
})
})?;Sourcepub fn batch_observer<B, F>(&self, builder: B)
pub fn batch_observer<B, F>(&self, builder: B)
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)]);
}
});Sourcepub fn record_batch<T: IntoIterator<Item = Measurement>>(
&self,
attributes: &[KeyValue],
measurements: T,
)
pub fn record_batch<T: IntoIterator<Item = Measurement>>( &self, attributes: &[KeyValue], measurements: T, )
Atomically record a batch of measurements.
Sourcepub fn record_batch_with_context<T: IntoIterator<Item = Measurement>>(
&self,
cx: &Context,
attributes: &[KeyValue],
measurements: T,
)
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§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
trace only.Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
trace only.