Python jaeger-client tracer не сообщает о повторном использовании - PullRequest
0 голосов
/ 05 июля 2019

Трассировка задач в сельдерее 4.1.1 с использованием примера кода.Каждый работник запускает:

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()

Когда я впервые запускаю задачи сельдерея и запускаю задачи, каждый работник получает трассировщик работ, и для каждого из них есть:

[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, и я не могу найти канонический способ обойти это.

...