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/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 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(()) }