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 more