Как мне установить пользовательский «trace_id» для трассировки данных?

#python #api #trace #datadog #apm

#python #API #трассировка #datadog #apm

Вопрос:

Как мне установить пользовательский «trace_id» для трассировки данных? Я искал высоко и низко, но не могу найти ответ на этот вопрос. Я подозреваю, что это не поддерживается. Был бы очень признателен, если бы я мог получить некоторую помощь здесь.

В качестве примера, если я могу выполнить следующее в нескольких файлах, я могу просматривать эти интервалы вместе в пользовательском интерфейсе Datadog, поскольку все они имеют одинаковый идентификатор трассировки:

 @tracer.wrap(service='foo', resource='bar')
def bar(self, ttt):
    span = tracer.current_span()
    span.set_trace_id("my_customer_trace_id")
  

Ответ №1:

Оказывается, идентификатор трассировки может быть установлен через конечную точку HTTP https://docs.datadoghq.com/api/v1/tracing/#send-traces . Похоже, что нет возможности напрямую отправлять трассировки агенту.

Это все еще может быть полезно, если снижение производительности при выполнении HTTP-вызовов не вызывает беспокойства, т. Е. Если вы не работаете в системе реального времени.

Ответ №2:

Я не очень хорошо знаком с пользовательским интерфейсом Datadog, но я вижу, что ddtrace позволяет вам устанавливать теги:

 span.set_tag('your_own_id', '12345')
  

Комментарии:

1. Это не годится, потому что нам нужно, чтобы эти события были одинаковыми trace id , чтобы они красиво выстраивались в пользовательском интерфейсе.