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.