Opentelemetry 1.4.0 W3C Trace Context上下文传播实现方法咨询
OpenTelemetry 1.4.0 版本W3C Trace Context上下文传播适配方案
适配后的注入代码
from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator from opentelemetry.propagators.textmap import DictSetter prop = TraceContextTextMapPropagator() carrier = {} # 1.x版本调整了inject参数顺序,set_in_carrier替换为setter参数,context默认取当前上下文可省略 prop.inject( carrier=carrier, setter=DictSetter() )
适配后的提取代码
from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator from opentelemetry.propagators.textmap import DictGetter prop = TraceContextTextMapPropagator() # 1.x版本调整了extract参数顺序,carrier放在首位,getter作为可选参数传入 context = prop.extract( carrier=request.headers, getter=DictGetter() )
核心改动说明
- inject方法删除了
set_in_carrier参数,替换为setter参数,针对字典类型的载体直接传入DictSetter实例即可 - extract方法参数顺序调整,原首参数
getter调整为可选的第三参数,DictGetter类并未移除,仍在opentelemetry.propagators.textmap模块下 - 两个方法的
context参数默认会自动获取当前上下文,无需显式传入get_current()
内容的提问来源于stack exchange,提问作者hashguard
相关产品推荐
相关产品推荐

