@@ -30,7 +30,7 @@ use tokio_util::sync::{CancellationToken, DropGuard};
30
30
#[ cfg( feature = "tower" ) ]
31
31
#[ cfg_attr( docsrs, doc( cfg( feature = "tower" ) ) ) ]
32
32
pub use tower:: * ;
33
- use tracing:: instrument;
33
+ use tracing:: { Instrument as _ , instrument} ;
34
34
#[ derive( Error , Debug ) ]
35
35
#[ non_exhaustive]
36
36
pub enum ServiceError {
@@ -573,6 +573,7 @@ where
573
573
// let mut stream = std::pin::pin!(stream);
574
574
let serve_loop_ct = ct. child_token ( ) ;
575
575
let peer_return: Peer < R > = peer. clone ( ) ;
576
+ let current_span = tracing:: Span :: current ( ) ;
576
577
let handle = tokio:: spawn ( async move {
577
578
let mut transport = transport. into_transport ( ) ;
578
579
let mut batch_messages = VecDeque :: < RxJsonRpcMessage < R > > :: new ( ) ;
@@ -687,12 +688,13 @@ where
687
688
ct. cancel ( ) ;
688
689
}
689
690
let send = transport. send ( m) ;
691
+ let current_span = tracing:: Span :: current ( ) ;
690
692
tokio:: spawn ( async move {
691
693
let send_result = send. await ;
692
694
if let Err ( error) = send_result {
693
695
tracing:: error!( %error, "fail to response message" ) ;
694
696
}
695
- } ) ;
697
+ } . instrument ( current_span ) ) ;
696
698
}
697
699
}
698
700
Event :: ProxyMessage ( PeerSinkMessage :: Request {
@@ -704,10 +706,11 @@ where
704
706
let send = transport. send ( JsonRpcMessage :: request ( request, id. clone ( ) ) ) ;
705
707
{
706
708
let id = id. clone ( ) ;
709
+ let current_span = tracing:: Span :: current ( ) ;
707
710
send_task_set. spawn ( send. map ( move |r| SendTaskResult :: Request {
708
711
id,
709
712
result : r. map_err ( DynamicTransportError :: new :: < T , R > ) ,
710
- } ) ) ;
713
+ } ) . instrument ( current_span ) ) ;
711
714
}
712
715
}
713
716
Event :: ProxyMessage ( PeerSinkMessage :: Notification {
@@ -724,11 +727,12 @@ where
724
727
Err ( notification) => notification,
725
728
} ;
726
729
let send = transport. send ( JsonRpcMessage :: notification ( notification) ) ;
730
+ let current_span = tracing:: Span :: current ( ) ;
727
731
send_task_set. spawn ( send. map ( move |result| SendTaskResult :: Notification {
728
732
responder,
729
733
cancellation_param,
730
734
result : result. map_err ( DynamicTransportError :: new :: < T , R > ) ,
731
- } ) ) ;
735
+ } ) . instrument ( current_span ) ) ;
732
736
}
733
737
Event :: PeerMessage ( JsonRpcMessage :: Request ( JsonRpcRequest {
734
738
id,
@@ -755,8 +759,11 @@ where
755
759
meta,
756
760
extensions,
757
761
} ;
762
+ let current_span = tracing:: Span :: current ( ) ;
758
763
tokio:: spawn ( async move {
759
- let result = service. handle_request ( request, context) . await ;
764
+ let result = service
765
+ . handle_request ( request, context)
766
+ . await ;
760
767
let response = match result {
761
768
Ok ( result) => {
762
769
tracing:: debug!( %id, ?result, "response message" ) ;
@@ -768,7 +775,7 @@ where
768
775
}
769
776
} ;
770
777
let _send_result = sink. send ( response) . await ;
771
- } ) ;
778
+ } . instrument ( current_span ) ) ;
772
779
}
773
780
}
774
781
Event :: PeerMessage ( JsonRpcMessage :: Notification ( JsonRpcNotification {
@@ -799,12 +806,13 @@ where
799
806
meta,
800
807
extensions,
801
808
} ;
809
+ let current_span = tracing:: Span :: current ( ) ;
802
810
tokio:: spawn ( async move {
803
811
let result = service. handle_notification ( notification, context) . await ;
804
812
if let Err ( error) = result {
805
813
tracing:: warn!( %error, "Error sending notification" ) ;
806
814
}
807
- } ) ;
815
+ } . instrument ( current_span ) ) ;
808
816
}
809
817
}
810
818
Event :: PeerMessage ( JsonRpcMessage :: Response ( JsonRpcResponse {
@@ -849,7 +857,7 @@ where
849
857
}
850
858
tracing:: info!( ?quit_reason, "serve finished" ) ;
851
859
quit_reason
852
- } ) ;
860
+ } . instrument ( current_span ) ) ;
853
861
RunningService {
854
862
service,
855
863
peer : peer_return,
0 commit comments