Skip to content

Commit

Permalink
Remove old global meter provider shutdown method (#1412)
Browse files Browse the repository at this point in the history
This change removes the old `global::shutdown_meter_provider` method
which is not part of the metrics API spec, and properly documents the
`SdkMeterProvider::shutdown` method which is spec compliant.
  • Loading branch information
jtescher committed Nov 29, 2023
1 parent c0104d3 commit cd23ec2
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 17 deletions.
17 changes: 9 additions & 8 deletions opentelemetry-sdk/src/metrics/meter_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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<dyn std::error::Error>> {
/// 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<()> {
Expand Down
3 changes: 2 additions & 1 deletion opentelemetry/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)

Expand Down
8 changes: 0 additions & 8 deletions opentelemetry/src/global/metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit cd23ec2

Please sign in to comment.