haystack python opentracing实现
haystack-client的Python项目详细描述
python opentracing api的haystack绑定
这是haystack的python客户端库,它实现了OpenTracing
有关详细信息,请参见opentracing.io
使用此库
请参阅/examples目录中的示例。有关其他信息,请参见opentracingusage。
首先,通过提供服务名称和记录器在应用程序级别初始化跟踪程序
importopentracingfromhaystackimportHaystackAgentRecorderfromhaystackimportHaystackTraceropentracing.tracer=HaystackTracer("a_service",HaystackAgentRecorder())
可以使用start_active_span()
withopentracing.tracer.start_active_span("span-name")asscope:do_stuff()
或者用
span=opentracing.tracer.start_span("span-name")do_stuff()span.finish()
注意:如果有作用域,它将充当任何新启动的span的父级,除非程序员通过
ignore_active_span=True
在start_span()/start_active_span()
时间或指定的父上下文显式使用
childOf=parent_context
自定义传播头
如果需要,可以通过指定自定义传播程序选项将默认传播头替换为自定义传播头。一旦配置好跟踪程序,就向跟踪程序注册新的传播程序。
prop_opts=PropagatorOpts("X-Trace-ID","X-Span-ID","X-Parent-Span","X-baggage-")opentracing.tracer.register_propagator(opentracing.Format.HTTP_HEADERS,TextPropagator(prop_opts))
日志记录
所有模块都通过logging.getLogger(__name__)
因此,要为此库定义特定的日志格式或级别,请使用getLogger('haystack')
,或配置
根记录程序。
如何配置生成环境
创建python3虚拟环境,激活它,然后make bootstrap
运行示例代码
make example
如何发布此库
在github中创建一个新版本,指定一个大于当前版本的semver兼容标记。