py_zipkin源码分析(1)

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管理。

你可能感兴趣的:(python)