gpt4 book ai didi

Python jaeger-client 跟踪器不报告重用

转载 作者:行者123 更新时间:2023-12-03 16:50:58 29 4
gpt4 key购买 nike

使用示例代码在 celery 4.1.1 中跟踪任务。每个 worker 运行:

import logging
from jaeger_client import Config
import opentracing

def get_tracer(service="Vienna"):
config = Config(
config={

'sampler': {
'type': 'const',
'param': 1,
},
'logging': True,
},
service_name=service,
)
return config.initialize_tracer() or opentracing.global_tracer()

当我第一次启动 celery 并运行任务时,每个工作人员都会获得一个工作跟踪器,并且每个工作人员都有一个日志输出:
[2019-07-04 19:17:00,527: INFO/ForkPoolWorker-2] Initializing Jaeger Tracer with UDP reporter
[2019-07-04 19:17:00,546: INFO/ForkPoolWorker-2] opentracing.tracer initialized to <jaeger_client.tracer.Tracer object at 0x7f804d079c10>[app_name=SocketIOTask]

在初始之后运行的任何任务都会获得全局跟踪器
来自 Config.initialze_tracer (返回 None )和日志警告 Jaeger tracer already initialized, skipping .

在控制台上观察 tcpdump 显示 UDP 数据包没有被发送,我想我得到了一个未初始化的默认跟踪器,它正在使用 noop 报告器。

我仔细研究了 opentracing 和 jaeger_client 中的代码,但找不到解决此问题的规范方法。

最佳答案

from jaeger_client import Config
def get_tracer(service="Vienna"):

config = Config(
config={
'sampler': {
'type': 'const',
'param': 1,
},
'logging': True,
},
service_name=service,
)

tracer = config.initialize_tracer()
if tracer is None:
Config._initialized = False
tracer = config.initialize_tracer()
return tracer

关于Python jaeger-client 跟踪器不报告重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56895100/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com