Я впервые смотрю на OpenTracing для Python и прошёл несколько уроков.
Насколько я понимаю, OpenTracing требует, чтобы вы явно упаковывали свой код в операторы with
(или с явными операторами start / stop), и в этом случае он будет создавать только промежуток для того, что вы явно указали.
with tracer.start_span('fourth-span') as span4:
span4.set_tag('fourth-tag', '60')
with tracer.start_span('fifth-span', child_of=span4) as span5:
span5.set_tag('fifth-tag', '80')
Мне было интересно, есть ли способы автоматической рекурсивной обработки функции, чтобы она могла перехватывать все другие вызовы дочерних функций и создавать для них дочерние промежутки без явной упаковки каждого дочернего вызова.
Я видел такие сервисы, как NewReli c, которые делают это, где вы можете в основном обернуть все приложение, и оно будет рекурсивно обрабатывать все вызовы функций, которые оно выполняет. Мне было интересно, было ли что-то похожее с OpenTracing.
Простите, если это не вариант использования OpenTracing, но я пытаюсь определить, является ли это предполагаемым вариантом использования или нет. Любой совет высоко ценится.