From dde5927fd26ae872d6f03f278e22a6ff377bf375 Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Sun, 3 Aug 2025 11:35:11 -0700 Subject: [PATCH 1/3] fix: Add feature flag to otel-http crate to better reflect purpose --- opentelemetry-http/CHANGELOG.md | 2 ++ opentelemetry-http/Cargo.toml | 8 +++++--- opentelemetry-otlp/Cargo.toml | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/opentelemetry-http/CHANGELOG.md b/opentelemetry-http/CHANGELOG.md index f23908c138..5b5a921a3b 100644 --- a/opentelemetry-http/CHANGELOG.md +++ b/opentelemetry-http/CHANGELOG.md @@ -4,6 +4,8 @@ - Implementation of `Extractor::get_all` for `HeaderExtractor` - Support `HttpClient` implementation for `HyperClient` with custom connectors beyond `HttpConnector`, enabling Unix Domain Socket connections and other custom transports +- Add `reqwest` and `reqwest-blocking` features to enable async and blocking + reqwest HTTP clients ## 0.30.0 diff --git a/opentelemetry-http/Cargo.toml b/opentelemetry-http/Cargo.toml index 17e7fec43f..c27cf18b85 100644 --- a/opentelemetry-http/Cargo.toml +++ b/opentelemetry-http/Cargo.toml @@ -13,8 +13,10 @@ autobenches = false [features] default = ["internal-logs"] hyper = ["dep:http-body-util", "dep:hyper", "dep:hyper-util", "dep:tokio"] -reqwest-rustls = ["reqwest", "reqwest/rustls-tls-native-roots"] -reqwest-rustls-webpki-roots = ["reqwest", "reqwest/rustls-tls-webpki-roots"] +reqwest = ["dep:reqwest"] +reqwest-blocking = ["dep:reqwest", "reqwest/blocking"] +reqwest-rustls = ["dep:reqwest", "reqwest/rustls-tls-native-roots"] +reqwest-rustls-webpki-roots = ["dep:reqwest", "reqwest/rustls-tls-webpki-roots"] internal-logs = ["opentelemetry/internal-logs"] [dependencies] @@ -25,7 +27,7 @@ http-body-util = { workspace = true, optional = true } hyper = { workspace = true, optional = true } hyper-util = { workspace = true, features = ["client-legacy", "http1", "http2"], optional = true } opentelemetry = { workspace = true, features = ["trace"] } -reqwest = { workspace = true, features = ["blocking"], optional = true } +reqwest = { workspace = true, optional = true } tokio = { workspace = true, features = ["time"], optional = true } [lints] diff --git a/opentelemetry-otlp/Cargo.toml b/opentelemetry-otlp/Cargo.toml index 88604d0603..a3f4207070 100644 --- a/opentelemetry-otlp/Cargo.toml +++ b/opentelemetry-otlp/Cargo.toml @@ -74,7 +74,7 @@ tls-webpki-roots = ["tls", "tonic/tls-webpki-roots"] # http binary http-proto = ["prost", "opentelemetry-http", "opentelemetry-proto/gen-tonic-messages", "http", "trace", "metrics"] http-json = ["serde_json", "prost", "opentelemetry-http", "opentelemetry-proto/gen-tonic-messages", "opentelemetry-proto/with-serde", "http", "trace", "metrics"] -reqwest-blocking-client = ["reqwest/blocking", "opentelemetry-http/reqwest"] +reqwest-blocking-client = ["reqwest/blocking", "opentelemetry-http/reqwest-blocking"] reqwest-client = ["reqwest", "opentelemetry-http/reqwest"] reqwest-rustls = ["reqwest", "opentelemetry-http/reqwest-rustls"] reqwest-rustls-webpki-roots = ["reqwest", "opentelemetry-http/reqwest-rustls-webpki-roots"] From 34a8b833e297825b2d035c04c6218709435c9d03 Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Sun, 3 Aug 2025 11:45:48 -0700 Subject: [PATCH 2/3] see if we can conditionally use blocking --- opentelemetry-http/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/opentelemetry-http/src/lib.rs b/opentelemetry-http/src/lib.rs index 0ec13753ee..e6fc5fc16d 100644 --- a/opentelemetry-http/src/lib.rs +++ b/opentelemetry-http/src/lib.rs @@ -108,6 +108,7 @@ mod reqwest { } #[cfg(not(target_arch = "wasm32"))] + #[cfg(feature = "reqwest-blocking")] #[async_trait] impl HttpClient for reqwest::blocking::Client { async fn send_bytes(&self, request: Request) -> Result, HttpError> { From 619526e8dacbba187213e425e8cadda57a9bdedb Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Sun, 3 Aug 2025 20:40:55 -0700 Subject: [PATCH 3/3] fix zipkin --- opentelemetry-zipkin/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentelemetry-zipkin/Cargo.toml b/opentelemetry-zipkin/Cargo.toml index f0c5117f17..e336126f1c 100644 --- a/opentelemetry-zipkin/Cargo.toml +++ b/opentelemetry-zipkin/Cargo.toml @@ -22,7 +22,7 @@ rustdoc-args = ["--cfg", "docsrs"] [features] default = ["reqwest-blocking-client", "reqwest/native-tls"] -reqwest-blocking-client = ["reqwest/blocking", "opentelemetry-http/reqwest"] +reqwest-blocking-client = ["reqwest/blocking", "opentelemetry-http/reqwest-blocking"] reqwest-client = ["reqwest", "opentelemetry-http/reqwest"] reqwest-rustls = ["reqwest", "reqwest/rustls-tls-native-roots"]