Я использую модуль Python opentracing с клиентом RP C (по HTTP).
В настоящее время я не заинтересован в отправке журналов трассировки в такое приложение, как Jaeger - Я просто хочу проверить промежуток (и дочерние промежутки) в клиенте, когда возвращается вызов RP C.
Пока у меня есть это:
tracer = MockTracer()
with tracer.start_span('my-client') as span:
span.set_tag(tags.HTTP_METHOD, 'GET')
span.set_tag(tags.HTTP_URL, url)
span.set_tag(tags.SPAN_KIND, tags.SPAN_KIND_RPC_CLIENT)
opentracing.global_tracer().inject(span.context, Format.HTTP_HEADERS, headers)
results = requests.request('GET', url, headers=headers, params=params, json=body)
# Extract from span any tags added by the server and/or any child spans created by the server???
Я обнаружил, что должен был используйте MockTracer()
, чтобы получить что-либо вообще. Базовый класс Tracer()
, по-видимому, не сделал общедоступной базовую c информацию (start_time
, finish_time
, tags
et c) о диапазонах.
I в настоящее время не может выяснить, как извлечь обновленный диапазон (чтобы прочитать какие-либо теги, которые мог добавить сервер) и какие-либо дочерние диапазоны, созданные сервером, по результатам запроса. (Я также немного озадачен тем, как сервер узнает, какие дочерние диапазоны нужно создать - очевидно, они должны быть того же типа, что и диапазон, передаваемый через заголовки.)
В В двух словах, хотя отправка отчетов о трассировке на центральный сервер, например, Jaeger, полезна, моя цель здесь - заставить клиента RP C распечатать всю информацию о трассировке сервера. (Не сказать, что я не хочу, чтобы трассировки также были в Jaeger, но я разберусь с этим, как только сработает система отчетов о трассировке клиента.)