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

trace

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

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

Спан



Трейс



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


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

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

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

jaeger-schema

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


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

Источником ожидаемого значения общего показателя задержки запроса могут выступать требования или приемлемое для пользователя время, равное обычно не более, чем нескольким секундам.

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

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

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

jaeger-ui-trace-example

Пример трейса в Jaeger UI