В этой статье разработчикам будет показано, как интегрировать методы для получения TraceID и добавления TraceID в логи приложения в коде приложения, что подходит для backend-разработчиков с некоторым опытом разработки.
Бизнес-логи, связанные с TraceID
Содержание
Предпосылки
-
Для корректного объединения нескольких автоматически отправляемых спанов (различных модулей/узлов/сервисов, вызываемых в рамках одного запроса) в один трейс, в HTTP-заголовках запроса сервиса передаются TraceID и другая информация, используемая для связывания трейса.
-
Трейс представляет собой процесс вызова одного запроса, а TraceID — уникальный идентификатор, определяющий этот запрос. Наличие TraceID в логах позволяет связать трассировку с логами приложения.
Исходя из вышеизложенного, в этой статье будет объяснено, как получить TraceID из HTTP-заголовков запроса и добавить его в логи приложения, что позволит точно выполнять поиск логов на платформе по TraceID.
Добавление TraceID в логи Java-приложения
-
Приведённые примеры основаны на фреймворке Spring Boot и используют Log4j и Logback для иллюстрации.
-
Ваше приложение должно соответствовать следующим требованиям:
-
Тип и версия библиотеки логирования должны соответствовать следующим требованиям:
-
В приложение внедрён Java Agent.
-
Способ 1: Настройка logging.pattern.level
Измените параметр logging.pattern.level в конфигурации приложения следующим образом:
Способ 2: Настройка CONSOLE_LOG_PATTERN
-
Измените файл конфигурации logback следующим образом.
TIPВ качестве примера используется вывод в консоль, где
%X{trace_id}обозначает значение ключаtrace_id, полученное из MDC. -
В классе, где необходимо выводить логи, добавьте аннотацию
@Slf4jи используйте объект log для вывода логов, как показано ниже:
Добавление TraceID в логи Python-приложения
-
В коде приложения добавьте следующий код для получения TraceID из заголовков запроса. Пример кода приведён ниже и может быть адаптирован по необходимости:
TIPФункция getForwardHeaders извлекает информацию о трейсе из заголовков запроса, где значение
x-b3-traceidявляется TraceID. -
В коде приложения добавьте следующий код для включения полученного TraceID в логи. Пример кода приведён ниже и может быть адаптирован по необходимости:
Метод проверки
-
Нажмите на Tracing в левой навигационной панели.
-
В критериях запроса выберите TraceID, введите TraceID для поиска и нажмите Add to query.
-
В отображаемых ниже данных трейса нажмите View Log рядом с TraceID.
-
На странице Log Query отметьте Contain Trace ID; система отобразит только лог-данные, содержащие TraceID.