diff --git a/opentelemetry-sdk/src/metrics/meter_provider.rs b/opentelemetry-sdk/src/metrics/meter_provider.rs index 7ea1ec9b9a..fd10b832ea 100644 --- a/opentelemetry-sdk/src/metrics/meter_provider.rs +++ b/opentelemetry-sdk/src/metrics/meter_provider.rs @@ -58,30 +58,31 @@ impl SdkMeterProvider { /// use opentelemetry_sdk::metrics::SdkMeterProvider; /// /// fn init_metrics() -> SdkMeterProvider { + /// // Setup metric pipelines with readers + views, default has no + /// // readers so nothing is exported. /// let provider = SdkMeterProvider::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() { + /// fn main() -> Result<(), Box> { /// let provider = init_metrics(); /// /// // create instruments + record measurements /// /// // force all instruments to flush - /// provider.force_flush().unwrap(); + /// provider.force_flush()?; /// /// // record more measurements.. /// - /// // dropping provider and shutting down global provider ensure all - /// // remaining metrics data are exported - /// drop(provider); - /// global::shutdown_meter_provider(); + /// // shutdown ensures any cleanup required by the provider is done, + /// // and also invokes shutdown on the readers. + /// provider.shutdown()?; + /// + /// Ok(()) /// } /// ``` pub fn force_flush(&self) -> Result<()> { diff --git a/opentelemetry/CHANGELOG.md b/opentelemetry/CHANGELOG.md index 0e7aebd62f..77c5b52a93 100644 --- a/opentelemetry/CHANGELOG.md +++ b/opentelemetry/CHANGELOG.md @@ -10,7 +10,6 @@ of entries, so moving from `IndexMap` to `HashMap` offers slight performance gains, and avoids `IndexMap` dependency. This affects `body` and `attributes` of `LogRecord`. [#1353](https://github.com/open-telemetry/opentelemetry-rust/pull/1353) - - Add `TextMapCompositePropagator` [#1373](https://github.com/open-telemetry/opentelemetry-rust/pull/1373) ### Removed @@ -19,6 +18,8 @@ gains, and avoids `IndexMap` dependency. This affects `body` and `attributes` of `HashMap`. [#1353](https://github.com/open-telemetry/opentelemetry-rust/pull/1353) - Remove API for Creating Histograms with signed integers. [#1371](https://github.com/open-telemetry/opentelemetry-rust/pull/1371) +- Remove `global::shutdown_meter_provider`, use `SdkMeterProvider::shutdown` + directly instead (#1412). ## [v0.21.0](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.20.0...v0.21.0) diff --git a/opentelemetry/src/global/metrics.rs b/opentelemetry/src/global/metrics.rs index 549a4fc24c..c40477e5ac 100644 --- a/opentelemetry/src/global/metrics.rs +++ b/opentelemetry/src/global/metrics.rs @@ -98,14 +98,6 @@ where *global_provider = GlobalMeterProvider::new(new_provider); } -/// Shut down the current meter global meter provider. -pub fn shutdown_meter_provider() { - let mut global_provider = GLOBAL_METER_PROVIDER - .write() - .expect("GLOBAL_METER_PROVIDER RwLock poisoned"); - *global_provider = GlobalMeterProvider::new(metrics::noop::NoopMeterProvider::new()); -} - /// Returns an instance of the currently configured global [`MeterProvider`] /// through [`GlobalMeterProvider`]. pub fn meter_provider() -> GlobalMeterProvider {