Skip to content

Commit d3b1c47

Browse files
authored
Global error handler cleanup - MeterProvider (#2237)
1 parent 0202299 commit d3b1c47

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

opentelemetry-sdk/src/metrics/meter_provider.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ use std::{
88
};
99

1010
use opentelemetry::{
11-
global,
1211
metrics::{Meter, MeterProvider, MetricsError, Result},
13-
KeyValue,
12+
otel_debug, otel_error, KeyValue,
1413
};
1514

1615
use crate::{instrumentation::Scope, Resource};
@@ -137,13 +136,21 @@ impl Drop for SdkMeterProviderInner {
137136
fn drop(&mut self) {
138137
// If user has already shutdown the provider manually by calling
139138
// shutdown(), then we don't need to call shutdown again.
140-
if !self.is_shutdown.load(Ordering::Relaxed) {
141-
if let Err(err) = self.shutdown() {
142-
global::handle_error(err);
143-
}
139+
if self.is_shutdown.load(Ordering::Relaxed) {
140+
otel_debug!(
141+
name: "MeterProvider.AlreadyShutdown",
142+
message = "Meter provider was already shut down; drop will not attempt shutdown again."
143+
);
144+
} else if let Err(err) = self.shutdown() {
145+
otel_error!(
146+
name: "MeterProvider.ShutdownFailed",
147+
message = "Shutdown attempt failed during drop of MeterProvider.",
148+
reason = format!("{}", err)
149+
);
144150
}
145151
}
146152
}
153+
147154
impl MeterProvider for SdkMeterProvider {
148155
fn versioned_meter(
149156
&self,

0 commit comments

Comments
 (0)