From 0b34a78eee5945ef8d77cb4f224a9825836719f8 Mon Sep 17 00:00:00 2001 From: gruebel Date: Fri, 14 Feb 2025 09:56:18 +0100 Subject: [PATCH 1/2] make force_flush() in PushMetricExporter synchronous --- opentelemetry-otlp/CHANGELOG.md | 2 ++ opentelemetry-otlp/src/metric.rs | 2 +- opentelemetry-sdk/src/metrics/exporter.rs | 2 +- opentelemetry-sdk/src/metrics/in_memory_exporter.rs | 2 +- opentelemetry-sdk/src/metrics/periodic_reader.rs | 4 ++-- opentelemetry-stdout/src/metrics/exporter.rs | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/opentelemetry-otlp/CHANGELOG.md b/opentelemetry-otlp/CHANGELOG.md index bc8046f9ad..1ddc0966f7 100644 --- a/opentelemetry-otlp/CHANGELOG.md +++ b/opentelemetry-otlp/CHANGELOG.md @@ -2,6 +2,8 @@ ## vNext +- Make `force_flush()` in `PushMetricExporter` synchronous + ## 0.28.0 Released 2025-Feb-10 diff --git a/opentelemetry-otlp/src/metric.rs b/opentelemetry-otlp/src/metric.rs index 686de5dde5..4a5b4063b1 100644 --- a/opentelemetry-otlp/src/metric.rs +++ b/opentelemetry-otlp/src/metric.rs @@ -144,7 +144,7 @@ impl PushMetricExporter for MetricExporter { self.client.export(metrics).await } - async fn force_flush(&self) -> OTelSdkResult { + fn force_flush(&self) -> OTelSdkResult { // this component is stateless Ok(()) } diff --git a/opentelemetry-sdk/src/metrics/exporter.rs b/opentelemetry-sdk/src/metrics/exporter.rs index 32a29e44d1..ce13a69c6c 100644 --- a/opentelemetry-sdk/src/metrics/exporter.rs +++ b/opentelemetry-sdk/src/metrics/exporter.rs @@ -20,7 +20,7 @@ pub trait PushMetricExporter: Send + Sync + 'static { ) -> impl std::future::Future + Send; /// Flushes any metric data held by an exporter. - fn force_flush(&self) -> impl std::future::Future + Send; + fn force_flush(&self) -> OTelSdkResult; /// Releases any held computational resources. /// diff --git a/opentelemetry-sdk/src/metrics/in_memory_exporter.rs b/opentelemetry-sdk/src/metrics/in_memory_exporter.rs index 89574e3219..50f03edbf9 100644 --- a/opentelemetry-sdk/src/metrics/in_memory_exporter.rs +++ b/opentelemetry-sdk/src/metrics/in_memory_exporter.rs @@ -272,7 +272,7 @@ impl PushMetricExporter for InMemoryMetricExporter { .map_err(|_| OTelSdkError::InternalFailure("Failed to lock metrics".to_string())) } - async fn force_flush(&self) -> OTelSdkResult { + fn force_flush(&self) -> OTelSdkResult { Ok(()) // In this implementation, flush does nothing } diff --git a/opentelemetry-sdk/src/metrics/periodic_reader.rs b/opentelemetry-sdk/src/metrics/periodic_reader.rs index 41eba0a2e1..79f4e9e802 100644 --- a/opentelemetry-sdk/src/metrics/periodic_reader.rs +++ b/opentelemetry-sdk/src/metrics/periodic_reader.rs @@ -557,7 +557,7 @@ mod tests { } } - async fn force_flush(&self) -> OTelSdkResult { + fn force_flush(&self) -> OTelSdkResult { Ok(()) } @@ -580,7 +580,7 @@ mod tests { Ok(()) } - async fn force_flush(&self) -> OTelSdkResult { + fn force_flush(&self) -> OTelSdkResult { Ok(()) } diff --git a/opentelemetry-stdout/src/metrics/exporter.rs b/opentelemetry-stdout/src/metrics/exporter.rs index daa975c783..a30e649baf 100644 --- a/opentelemetry-stdout/src/metrics/exporter.rs +++ b/opentelemetry-stdout/src/metrics/exporter.rs @@ -58,7 +58,7 @@ impl PushMetricExporter for MetricExporter { } } - async fn force_flush(&self) -> OTelSdkResult { + fn force_flush(&self) -> OTelSdkResult { // exporter holds no state, nothing to flush Ok(()) } From 38663dcc89af77c3072b2bc9eea4cbf101e3d7bb Mon Sep 17 00:00:00 2001 From: gruebel Date: Fri, 14 Feb 2025 20:52:08 +0100 Subject: [PATCH 2/2] fix changelog --- opentelemetry-otlp/CHANGELOG.md | 2 -- opentelemetry-sdk/CHANGELOG.md | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opentelemetry-otlp/CHANGELOG.md b/opentelemetry-otlp/CHANGELOG.md index 1ddc0966f7..bc8046f9ad 100644 --- a/opentelemetry-otlp/CHANGELOG.md +++ b/opentelemetry-otlp/CHANGELOG.md @@ -2,8 +2,6 @@ ## vNext -- Make `force_flush()` in `PushMetricExporter` synchronous - ## 0.28.0 Released 2025-Feb-10 diff --git a/opentelemetry-sdk/CHANGELOG.md b/opentelemetry-sdk/CHANGELOG.md index 67e6143d25..0026252710 100644 --- a/opentelemetry-sdk/CHANGELOG.md +++ b/opentelemetry-sdk/CHANGELOG.md @@ -2,6 +2,8 @@ ## vNext +- *Breaking* Make `force_flush()` in `PushMetricExporter` synchronous + ## 0.28.0 Released 2025-Feb-10