@@ -10,11 +10,14 @@ use alloy::{
1010 primitives:: { B256 , U256 } ,
1111 providers:: { Provider , network:: Network } ,
1212} ;
13+ use init4_bin_base:: deps:: {
14+ opentelemetry:: trace:: TraceContextExt , tracing_opentelemetry:: OpenTelemetrySpanExt ,
15+ } ;
1316use signet_constants:: SignetSystemConstants ;
1417use signet_sim:: { HostEnv , RollupEnv } ;
1518use tokio:: { sync:: watch, task:: JoinHandle } ;
1619use tokio_stream:: StreamExt ;
17- use tracing:: { Instrument , Span , info_span} ;
20+ use tracing:: { Instrument , Span , debug_span , info_span} ;
1821use trevm:: revm:: {
1922 context:: BlockEnv ,
2023 context_interface:: block:: BlobExcessGasAndPrice ,
@@ -273,19 +276,41 @@ impl EnvTask {
273276
274277 drop ( span) ;
275278
276- while let Some ( rollup_header) =
277- rollup_headers. next ( ) . instrument ( info_span ! ( "EnvTask::task_fut::stream" ) ) . await
279+ // This span will be updated at the end of each loop iteration.
280+ let mut span = info_span ! (
281+ parent: None ,
282+ "SimEnv" ,
283+ host_block. number = "initial" ,
284+ rollup_header. number = "initial" ,
285+ rollup_header. hash = "initial" ,
286+ trace_id = tracing:: field:: Empty ,
287+ ) ;
288+
289+ while let Some ( rollup_header) = rollup_headers
290+ . next ( )
291+ . instrument ( info_span ! ( parent: & span, "waiting_for_notification" ) )
292+ . await
278293 {
294+ // Ensure that we record the OpenTelemetry trace ID in the span.
295+ span. record ( "trace_id" , span. context ( ) . span ( ) . span_context ( ) . trace_id ( ) . to_string ( ) ) ;
296+
279297 let host_block_number =
280298 self . config . constants . rollup_block_to_host_block_num ( rollup_header. number ) ;
299+ let rollup_block_number = rollup_header. number ;
281300
282- let span = info_span ! ( "SimEnv" , %host_block_number, %rollup_header. hash, %rollup_header. number) ;
301+ // Populate span fields.
302+ span. record ( "host_block.number" , host_block_number) ;
303+ span. record ( "rollup_header.number" , rollup_block_number) ;
304+ span. record ( "rollup_header.hash" , rollup_header. hash . to_string ( ) ) ;
283305
284306 let ( host_block_res, quincey_res) = tokio:: join!(
285- self . host_provider. get_block_by_number( host_block_number. into( ) ) ,
307+ self . host_provider
308+ . get_block_by_number( host_block_number. into( ) )
309+ . into_future( )
310+ . instrument( debug_span!( parent: & span, "EnvTask::fetch_host_block" ) ) ,
286311 // We want to check that we're able to sign for the block we're gonna start building.
287312 // If not, we just want to skip all the work.
288- self . quincey. preflight_check( host_block_number + 1 )
313+ self . quincey. preflight_check( host_block_number + 1 ) . in_current_span ( ) ,
289314 ) ;
290315
291316 res_unwrap_or_continue ! (
@@ -322,18 +347,27 @@ impl EnvTask {
322347 let rollup_env = self . construct_rollup_env ( rollup_header. into ( ) ) ;
323348 let host_env = self . construct_host_env ( host_header) ;
324349
325- span_debug ! (
350+ span_info ! (
326351 span,
327352 rollup_env_number = rollup_env. block_env. number. to:: <u64 >( ) ,
328353 rollup_env_basefee = rollup_env. block_env. basefee,
329- "constructed block env"
354+ "constructed block env, dispatching to build process "
330355 ) ;
331356
332357 if sender. send ( Some ( SimEnv { span, rollup : rollup_env, host : host_env } ) ) . is_err ( ) {
333358 // The receiver has been dropped, so we can stop the task.
334359 tracing:: debug!( "receiver dropped, stopping task" ) ;
335360 break ;
336361 }
362+
363+ // Create a new span for the next iteration.
364+ span = info_span ! (
365+ "SimEnv" ,
366+ host_block. number = host_block_number + 1 ,
367+ rollup_header. number = rollup_block_number + 1 ,
368+ rollup_header. hash = tracing:: field:: Empty ,
369+ trace_id = tracing:: field:: Empty ,
370+ ) ;
337371 }
338372 }
339373
0 commit comments