1 添加root_span原理
只要传zipkin_attrs或者设置采样率,则认为是root_span,此时,可以利用ZipkinLoggingContext,发送存储在Tracer/span_storage中的span
2 添加子span原理
利用with上下文管理,每执行一次上下文,则在start的时候push保存上下文,退出时pop上下文,这样只要基于父上下文,就能根据父span新建子span
2 多线程和协程
通过localThread获取的已经是另外一个线程了,因此需要在新建线程之前,见父线程的context和span_storage传递给子线程,
同时新增子span,子线程只负责传送header,而父线程做span管理。