diff --git a/frame/support/procedural/src/pallet/expand/call.rs b/frame/support/procedural/src/pallet/expand/call.rs index 137e055405a38..295cf14d37f04 100644 --- a/frame/support/procedural/src/pallet/expand/call.rs +++ b/frame/support/procedural/src/pallet/expand/call.rs @@ -162,9 +162,13 @@ pub fn expand_call(def: &mut Def) -> proc_macro2::TokenStream { ) -> #frame_support::dispatch::DispatchResultWithPostInfo { match self { #( - Self::#fn_name( #( #args_name, )* ) => + Self::#fn_name( #( #args_name, )* ) => { + #frame_support::sp_tracing::enter_span!( + #frame_support::sp_tracing::trace_span!(stringify!(#fn_name)) + ); <#pallet_ident<#type_use_gen>>::#fn_name(origin, #( #args_name, )* ) - .map(Into::into).map_err(Into::into), + .map(Into::into).map_err(Into::into) + }, )* Self::__Ignore(_, _) => { let _ = origin; // Use origin for empty Call enum diff --git a/frame/support/procedural/src/pallet/expand/hooks.rs b/frame/support/procedural/src/pallet/expand/hooks.rs index 3976f2c602dde..2d12d5ecf9d46 100644 --- a/frame/support/procedural/src/pallet/expand/hooks.rs +++ b/frame/support/procedural/src/pallet/expand/hooks.rs @@ -55,6 +55,9 @@ pub fn expand_hooks(def: &mut Def) -> proc_macro2::TokenStream { for #pallet_ident<#type_use_gen> #where_clause { fn on_finalize(n: ::BlockNumber) { + #frame_support::sp_tracing::enter_span!( + #frame_support::sp_tracing::trace_span!("on_finalize") + ); < Self as #frame_support::traits::Hooks< ::BlockNumber @@ -86,6 +89,9 @@ pub fn expand_hooks(def: &mut Def) -> proc_macro2::TokenStream { fn on_initialize( n: ::BlockNumber ) -> #frame_support::weights::Weight { + #frame_support::sp_tracing::enter_span!( + #frame_support::sp_tracing::trace_span!("on_initialize") + ); < Self as #frame_support::traits::Hooks< ::BlockNumber @@ -99,6 +105,10 @@ pub fn expand_hooks(def: &mut Def) -> proc_macro2::TokenStream { for #pallet_ident<#type_use_gen> #where_clause { fn on_runtime_upgrade() -> #frame_support::weights::Weight { + #frame_support::sp_tracing::enter_span!( + #frame_support::sp_tracing::trace_span!("on_runtime_update") + ); + // log info about the upgrade. let new_storage_version = #frame_support::crate_to_pallet_version!(); let pallet_name = < diff --git a/frame/support/src/lib.rs b/frame/support/src/lib.rs index d0d034a55f502..220e7a06bdf31 100644 --- a/frame/support/src/lib.rs +++ b/frame/support/src/lib.rs @@ -1229,6 +1229,9 @@ pub mod pallet_prelude { /// NOTE: OnRuntimeUpgrade is implemented with `Hooks::on_runtime_upgrade` and some additional /// logic. E.g. logic to write pallet version into storage. /// +/// NOTE: The macro also adds some tracing logic when implementing the above traits. The following +/// hooks emit traces: `on_initialize`, `on_finalize` and `on_runtime_upgrade`. +/// /// # Call: `#[pallet::call]` mandatory /// /// Implementation of pallet dispatchables.