@@ -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