Distributed tracing follows one unit of work — a request, a market-data message, an order — across the services it passes through. Each step is a span, a unit of work with a start, an end, a trace identifier shared by all the steps and the identifier of the step that caused it, so that the path can be rebuilt as a tree.
fig_observe.py.