Struct opentelemetry_sdk::metrics::MeterProvider
source · pub struct MeterProvider { /* private fields */ }
Expand description
Handles the creation and coordination of Meters.
All Meter
s created by a MeterProvider
will be associated with the same
Resource, have the same Views applied to them, and have their produced
metric telemetry passed to the configured MetricReaders.
Implementations§
source§impl MeterProvider
impl MeterProvider
sourcepub fn builder() -> MeterProviderBuilder
pub fn builder() -> MeterProviderBuilder
Flushes all pending telemetry.
There is no guaranteed that all telemetry be flushed or all resources have been released on error.
sourcepub fn force_flush(&self) -> Result<()>
pub fn force_flush(&self) -> Result<()>
Flushes all pending telemetry.
There is no guaranteed that all telemetry be flushed or all resources have been released on error.
§Examples
use opentelemetry::{global, Context};
use opentelemetry_sdk::metrics::MeterProvider;
fn init_metrics() -> MeterProvider {
let provider = MeterProvider::default();
// Set provider to be used as global meter provider
let _ = global::set_meter_provider(provider.clone());
// Setup metric pipelines with readers + views
provider
}
fn main() {
let provider = init_metrics();
// create instruments + record measurements
// force all instruments to flush
provider.force_flush().unwrap();
// record more measurements..
// dropping provider and shutting down global provider ensure all
// remaining metrics data are exported
drop(provider);
global::shutdown_meter_provider();
}
sourcepub fn shutdown(&self) -> Result<()>
pub fn shutdown(&self) -> Result<()>
Shuts down the meter provider flushing all pending telemetry and releasing any held computational resources.
This call is idempotent. The first call will perform all flush and releasing operations. Subsequent calls will perform no action and will return an error stating this.
Measurements made by instruments from meters this MeterProvider created will not be exported after Shutdown is called.
There is no guaranteed that all telemetry be flushed or all resources have been released on error.
Trait Implementations§
source§impl Clone for MeterProvider
impl Clone for MeterProvider
source§fn clone(&self) -> MeterProvider
fn clone(&self) -> MeterProvider
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MeterProvider
impl Debug for MeterProvider
source§impl Default for MeterProvider
impl Default for MeterProvider
source§impl MeterProvider for MeterProvider
impl MeterProvider for MeterProvider
Auto Trait Implementations§
impl Freeze for MeterProvider
impl !RefUnwindSafe for MeterProvider
impl Send for MeterProvider
impl Sync for MeterProvider
impl Unpin for MeterProvider
impl !UnwindSafe for MeterProvider
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)