Crate sp_tracing
source ·Expand description
Substrate tracing primitives and macros.
To trace functions or invidual code in Substrate, this crate provides within_span
and enter_span
. See the individual docs for how to use these macros.
Note that to allow traces from wasm execution environment there are
2 reserved identifiers for tracing Field
recording, stored in the consts:
WASM_TARGET_KEY
and WASM_NAME_KEY
- if you choose to record fields, you
must ensure that your identifiers do not clash with either of these.
Additionally, we have a const: WASM_TRACE_IDENTIFIER
, which holds a span name used
to signal that the ‘actual’ span name and target should be retrieved instead from
the associated Fields mentioned above.
Note: The tracing
crate requires trace metadata to be static. This does not work
for wasm code in substrate, as it is regularly updated with new code from on-chain
events. The workaround for this is for the wasm tracing wrappers to put the
name
and target
data in the values
map (normally they would be in the static
metadata assembled at compile time).
Modules
- Events represent single points in time during the execution of a program.
- Spans represent periods of time in which a program was executing in a particular context.
Macros
- Constructs an event at the debug level.
- Constructs a span at the debug level.
- Enter a span.
- Constructs an event at the error level.
- Constructs a span at the error level.
- Constructs a new
Event
. - Constructs an event at the info level.
- Constructs a span at the info level.
- Constructs a new span.
- Constructs an event at the trace level.
- Constructs a span at the trace level.
- Constructs an event at the warn level.
- Constructs a span at the warn level.
- Runs given code within a tracing span, measuring it’s execution time.
Structs
- Describes the level of verbosity of a span or event.
- A handle representing a span, with the capability to enter the span if it exists.
- Span or Event Attributes
- The name of a field provided as the argument name when contstructing an
event!
orspan!
. Generally generated automaticaly viastringify
from an'static &str
. Likely print-able. - A list of
WasmFieldName
s in the order provided - Metadata provides generic information about the specifc location of the
span!
orevent!
call on the wasm-side. - A list of
WasmFieldName
s with the givenWasmValue
(if provided) in the order specified.
Enums
- The Tracing Level – the user can filter by this
- A paramter value provided to the span/event
Statics
- The fieldname for the wasm-originated name
- The fieldname for the wasm-originated target
- The identifier we are using to inject the wasm events in the generic
tracing
system
Functions
- Init a tracing subscriber for logging in tests.
- Try to init a simple tracing subscriber with log compatibility layer.