Трассировка запросов

Tracing

trace

Трассировка запроса — это процесс отслеживания пути прохождения запроса от сервиса к сервису в распределенных системах.

Сопутствующие данные помогают проводить тестирование производительности, выявлять узкие места (bottleneck) и оптимизировать работу приложений.

Спан

Span

Спан представляет собой логическую единицу работы сервиса и состоит из следующего набора полей:

  1. Идентификатор, например, f1db285a0893f9f6.
  2. Название операции, которую произвел сервис.
  3. Название сервиса, к которому относится спан.
  4. Тэги: дополнительные данные в виде «ключ = значение», добавляемые для фильтрации спанов.
  5. Логи: информация о ходе операции или сообщение об ошибке.
  6. Время: начало и длительность выполнения операции.

Пример спана операции запроса данных клиента

span-example

Трейс

Trace

Трейс в свою очередь отображает путь прохождения запроса через систему и состоит из множества спанов.

Спаны могут ссылаться друг на друга, образуя ориентированный ациклический граф. Связи между спанами обозначают последовательность выполнения операций.

trace-example

Схема транспортировки трейсов приложения

Рассмотрим минимальную конфигурацию компонентов для поддержки трассировки запросов с Jaeger и OpenTelemetry.

В приложение подключается библиотека OpenTelemetry, которая обеспечивает генерацию и экспорт данных. Трейсы приложения отправляются в Jaeger Collector, который далее сохраняет их в базу данных.

Пользователь получает доступ к Jaeger UI, где при помощи запросов, осуществляемых Jaeger Query к базе данных, может находить нужные трейсы по тэгам и другим параметрам и анализировать информацию.

jaeger-schema

Анализ трейсов приложения

Основной показатель, с которого можно начать анализ данных трассировки — это время выполнения той или иной операции, так называемая задержка выполнения операции (latency).

Максимальное время задержки описывается в нефункциональных требованиях и обычно не превышает 1-2 секунд.

Как пример, вызвать искусственное повышение фактического показателя задержки может неоптимально написанный SQL запрос, оптимизация которого позволит увеличить производительность системы.

Также мы можем обратить внимание на ошибки при выполнении некоторых операций, такие спаны отображаются в Jaeger UI с восклицательным знаком

В каждый из спанов можно «провалиться», почитать логи и другую полезную информацию.

Jaeger UI tracing example
Пример трейса в Jaeger UI
Задача
Задача доступна премиум пользователям!
Sidebar arrow

ВВЕДЕНИЕ

БАЗОВЫЕ ЗНАНИЯ

УРОВНИ ТЕСТИРОВАНИЯ

UI ТЕСТИРОВАНИЕ

ТЕХНИКИ ТЕСТ ДИЗАЙНА

ТЕСТОВАЯ ДОКУМЕНТАЦИЯ

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

POSTMAN

БАЗЫ ДАННЫХ

ТЕСТИРОВАНИЕ РЕЛИЗА

АНАЛИЗ РАБОТЫ ПРИЛОЖЕНИЯ

ПОДГОТОВКА К СОБЕСЕДОВАНИЮ

Как составить резюме Топ вопросов Собеседование