python - python opentracing with jaeger extract span 未使用微服务登录 UI
问题描述
我在我们的微服务系统中使用 jaeger 开放跟踪项目时遇到问题。我使用的配置如下。
config = Config(
config={
'sampler': {
'type': 'const',
'param': 1,
},
'local_agent': {
'reporting_host': '127.0.0.1',
},
'logging': True,
},
service_name='DB - API',
validate=True,
)
tracer = config.initialize_tracer()
active_span_source = FixedActiveSpanSource()
tracer_interceptor = open_tracing_client_interceptor(
tracer,
log_payloads=True,
active_span_source=active_span_source)
痕迹的来源与此相同。
with t.tracer.start_span('Request Post') as span:
print(
f"Created span: trace_id:{span.trace_id:x}, span_id:{span.span_id:x}, parent_id:{span.parent_id}, flags:{span.flags:x}")
span.log_kv({'event': 'Request Posted', 'life': 42})
with t.tracer.start_span('GraphQl', child_of=span) as span2:
span2.log_kv({'event': 'Graphql Executed', 'life': 42})
carrier = {}
t.tracer.inject(span, Format.HTTP_HEADERS, carrier)
print(carrier)
这工作正常,并记录在 UI 中,并在下面打印结果。
Created span: trace_id:2b55203a8773aa14, span_id:77cceca94f4cfe74, parent_id:None, flags:1
{'uber-trace-id': '2b55203a8773aa14:77cceca94f4cfe74:0:1'}
但是,当我在另一个服务中提取 {'uber-trace-id': '2b55203a8773aa14:77cceca94f4cfe74:0:1'} 时,它说已按预期创建了一个新跨度,但 UI 中没有记录任何内容。
carrier = {'uber-trace-id': '2b55203a8773aa14:77cceca94f4cfe74:0:1'}
parentspan = t.tracer.extract(Format.HTTP_HEADERS, carrier)
print(t.tracer.sampler)
with t.tracer.start_span('TEST', child_of=parentspan) as span3:
print(
f"Created span: trace_id:{span3.trace_id:x}, span_id:{span3.span_id:x}, parent_id:{span3.parent_id:x}, flags:{span3.flags:x}")
span3.log_kv({'event': 'test', 'life': 42})
time.sleep(1)
span3.log_kv({'event': 'test34', 'life': 43})
time.sleep(30)
打印结果:
Created span: trace_id:2b55203a8773aa14, span_id:af7fef928ff1cd13, parent_id:77cceca94f4cfe74, flags:1
使用 Format.HTTP_HEADERS 和 Format.TEXT_MAP 是相同的结果。有谁知道为什么 UI 中没有记录任何内容以及如何解决这个问题?
提前致谢。
解决方案
推荐阅读
- pug - 玉模板中占位符文本的 if else 条件
- reactjs - 使用日期选择器选择日期时出错
- swift - 如何使 swift http 请求功能同步/完成处理
- magento - Magento 后端和前端内容重复展示
- timer - 启用系统 AHB 时钟到定时器
- java - 在 Axon 聚合中保持 ManyToOne/OneToOne 关系
- html - 如何让 p 标签在响应式电子邮件中从堆叠位置从左到右移动
- java - 在 Android 项目中从 Java 调用 Kotlin 的函数时不能省略默认参数
- python - 为什么这个动态更新的散点图没有做任何事情?
- python - 使用 str.split 函数拆分数据框中的列