Skip to content

Commit 5be511b

Browse files
fix: updates exporter shutdown for spans exporter
Signed-off-by: Shivanshu Raj Shrivastava <[email protected]>
1 parent 9569b0f commit 5be511b

File tree

8 files changed

+21
-12
lines changed

8 files changed

+21
-12
lines changed

opentelemetry-otlp/src/exporter/http/trace.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ impl SpanExporter for OtlpHttpClient {
6161
Ok(())
6262
}
6363

64-
fn shutdown(&mut self) -> OTelSdkResult {
64+
fn shutdown(&self) -> OTelSdkResult {
6565
let mut client_guard = self.client.lock().map_err(|e| {
6666
OTelSdkError::InternalFailure(format!("Failed to acquire client lock: {}", e))
6767
})?;

opentelemetry-otlp/src/exporter/tonic/trace.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,12 @@ impl SpanExporter for TonicTracesClient {
8989
Ok(())
9090
}
9191

92-
fn shutdown(&mut self) -> OTelSdkResult {
93-
match self.inner.take() {
94-
Some(_) => Ok(()), // Successfully took `inner`, indicating a successful shutdown.
95-
None => Err(OTelSdkError::AlreadyShutdown), // `inner` was already `None`, meaning it's already shut down.
96-
}
92+
fn shutdown(&self) -> OTelSdkResult {
93+
// match self.inner.take() {
94+
// Some(_) => Ok(()), // Successfully took `inner`, indicating a successful shutdown.
95+
// None => Err(OTelSdkError::AlreadyShutdown), // `inner` was already `None`, meaning it's already shut down.
96+
// }
97+
Ok(())
9798
}
9899

99100
fn set_resource(&mut self, resource: &opentelemetry_sdk::Resource) {

opentelemetry-otlp/src/span.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,4 +159,12 @@ impl opentelemetry_sdk::trace::SpanExporter for SpanExporter {
159159
SupportedTransportClient::Http(client) => client.set_resource(resource),
160160
}
161161
}
162+
fn shutdown(&self) -> OTelSdkResult {
163+
match &self.client {
164+
#[cfg(feature = "grpc-tonic")]
165+
SupportedTransportClient::Tonic(client) => client.shutdown(),
166+
#[cfg(any(feature = "http-proto", feature = "http-json"))]
167+
SupportedTransportClient::Http(client) => client.shutdown(),
168+
}
169+
}
162170
}

opentelemetry-sdk/src/testing/trace/span_exporters.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ impl SpanExporter for TokioSpanExporter {
4949
})
5050
}
5151

52-
fn shutdown(&mut self) -> OTelSdkResult {
52+
fn shutdown(&self) -> OTelSdkResult {
5353
self.tx_shutdown.send(()).map_err(|_| {
5454
OTelSdkError::InternalFailure("Failed to send shutdown signal".to_string())
5555
})

opentelemetry-sdk/src/trace/export.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ pub trait SpanExporter: Send + Sync + Debug {
4343
/// flush the data and the destination is unavailable). SDK authors
4444
/// can decide if they want to make the shutdown timeout
4545
/// configurable.
46-
fn shutdown(&mut self) -> OTelSdkResult {
46+
fn shutdown(&self) -> OTelSdkResult {
4747
Ok(())
4848
}
4949

opentelemetry-sdk/src/trace/in_memory_exporter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ impl SpanExporter for InMemorySpanExporter {
138138
result
139139
}
140140

141-
fn shutdown(&mut self) -> OTelSdkResult {
141+
fn shutdown(&self) -> OTelSdkResult {
142142
self.reset();
143143
Ok(())
144144
}

opentelemetry-sdk/src/trace/span_processor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ impl<T: SpanExporter> SpanProcessor for SimpleSpanProcessor<T> {
155155
}
156156

157157
fn shutdown(&self) -> OTelSdkResult {
158-
if let Ok(mut exporter) = self.exporter.lock() {
158+
if let Ok(exporter) = self.exporter.lock() {
159159
exporter.shutdown()
160160
} else {
161161
Err(OTelSdkError::InternalFailure(
@@ -1089,7 +1089,7 @@ mod tests {
10891089
Ok(())
10901090
}
10911091

1092-
fn shutdown(&mut self) -> OTelSdkResult {
1092+
fn shutdown(&self) -> OTelSdkResult {
10931093
Ok(())
10941094
}
10951095
fn set_resource(&mut self, resource: &Resource) {

opentelemetry-stdout/src/trace/exporter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ impl opentelemetry_sdk::trace::SpanExporter for SpanExporter {
5959
}
6060
}
6161

62-
fn shutdown(&mut self) -> OTelSdkResult {
62+
fn shutdown(&self) -> OTelSdkResult {
6363
self.is_shutdown.store(true, Ordering::SeqCst);
6464
Ok(())
6565
}

0 commit comments

Comments
 (0)