Futures support for Zipkin tracing.
The Tracer
type uses thread local storage to track the current span. This
works well in blocking applications where a unit of work "owns" a thread
while it's running. However, it is less appropriate for futures-based
applications where multiple distinct futures are being evaluated on the same
thread in an interleaved fashion.
This crate provides a Spanned
wrapper type which ensures that a trace
context is registered with a Tracer
while a futures type is processing.
It can wrap Future
s, Sink
s, and Stream
s.