Skip to content

Commit 2c4412f

Browse files
committed
chore(gax-internal): inject diagnostic headers conditionally for integration tests
Allows setting generic HTTP/gRPC headers via GOOGLE_CLOUD_TEST_EXTRA_HEADERS.
1 parent bf48d4f commit 2c4412f

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

src/gax-internal/src/observability/grpc_tracing.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,21 @@ where
188188
let resource_name = req.extensions().get::<ResourceName>().map(|r| r.as_str());
189189
let span = create_grpc_span(req.uri(), &self.layer.inner, attempt_count, resource_name);
190190
crate::observability::propagation::inject_context(&span, req.headers_mut());
191+
192+
#[cfg(google_cloud_unstable_tracing)]
193+
if let Ok(headers) = std::env::var("GOOGLE_CLOUD_TEST_EXTRA_HEADERS") {
194+
for header in headers.split(',') {
195+
if let Some((k, v)) = header.split_once('=') {
196+
if let (Ok(name), Ok(val)) = (
197+
http::header::HeaderName::from_bytes(k.trim().as_bytes()),
198+
http::header::HeaderValue::from_str(v.trim()),
199+
) {
200+
req.headers_mut().insert(name, val);
201+
}
202+
}
203+
}
204+
}
205+
191206
let future = self.inner.call(req);
192207
ResponseFuture {
193208
inner: future,
@@ -244,6 +259,21 @@ where
244259
&tracing::Span::current(),
245260
req.headers_mut(),
246261
);
262+
263+
#[cfg(google_cloud_unstable_tracing)]
264+
if let Ok(headers) = std::env::var("GOOGLE_CLOUD_TEST_EXTRA_HEADERS") {
265+
for header in headers.split(',') {
266+
if let Some((k, v)) = header.split_once('=') {
267+
if let (Ok(name), Ok(val)) = (
268+
http::header::HeaderName::from_bytes(k.trim().as_bytes()),
269+
http::header::HeaderValue::from_str(v.trim()),
270+
) {
271+
req.headers_mut().insert(name, val);
272+
}
273+
}
274+
}
275+
}
276+
247277
NoTracingFuture {
248278
inner: self.inner.call(req),
249279
_phantom: std::marker::PhantomData,

0 commit comments

Comments
 (0)