Описание инструментов
Трейсинг в Grafana
В решении Bercut ESB реализован сквозной трейсинг. В архитектуре решения трейсинг используется для отслеживания сквозного прохождения запроса через микросервисы (Design Backend, API Gateway, Configuration Service, ESB Core). Цель трейсинга — связать воедино все этапы: от нажатия кнопки пользователем до применения конфигурации в ядре ESB.
Для просмотра трассировок и выявления этапа, на котором произошла ошибка, используется платформа Grafana, интегрированная с хранилищем трейсов Tempo.
Трейсинг в Grafana — это инструмент для визуализации и анализа распределённых трассировок (traces) в микросервисных архитектурах. Он помогает отслеживать путь запроса через множество сервисов, выявлять узкие места и диагностировать ошибки и даёт целостную картину работы распределённой системы: от быстрого поиска проблемных запросов до глубокого анализа их жизненного цикла и взаимосвязи с другими метриками.
Трейсинг в Grafana предоставляет следующие возможности:
-
Визуализация трассировок:
- отображение полного пути запроса в виде древовидной структуры
- графическое представление зависимостей между сервисами
- цветовая индикация длительности операций (горячие/холодные участки).
-
Анализ производительности:
- измерение времени выполнения каждого этапа запроса (span)
- выявление самых долгих операций и «узких мест»
- сравнение длительности похожих трассировок.
-
Детализация данных:
- просмотр метаданных каждого span: теги, логи, аннотации, коды ошибок
- фильтрация по сервисам, операциям, кодам ответов
- поиск по ключевым словам в логах и тегах.
-
Поиск и фильтрация:
- поиск трассировок по временным меткам, сервисам, тегам
- применение фильтров по длительности, статусу, пользовательским меткам
- сохранение часто используемых фильтров как шаблонов.
-
Корреляция с другими данными:
- сопоставление трассировок с метриками (например, CPU, память) и логами
- переход из панели метрик или логов прямо к соответствующей трассировке
- единый контекст для диагностики (APM‑подход).
-
Экспорт и интеграция:
- экспорт данных трассировки в JSON для дальнейшего анализа
- настройка оповещений на основе параметров трассировок
- интеграция с системами мониторинга и алертинга.
Визуализация трассировок
Существует несколько способов просмотра трейсов, каждый из которых решает свои задачи.
Grafana Dashboards
- Grafana Dashboards - стандартный рабочий инструмент. В частности, используется дашборд Application Tracing View - интегрированный набор инструментов (Trace View, Traces Drilldown, Explore), который позволяет вам получать данные из источника трассировки Tempo и превращать их в наглядную картину работы приложения, от высокоуровневых метрик до деталей отдельного запроса.

Application Tracing View в списке дашбордов в Grafana
Чтобы просмотреть детали трассировки, введите trace_id в поле Trace ID и нажмите Refresh.
Примечание:
trace_idвы можете скопировать из логов на дашборде Application Logs View.
Вы можете настроить Span Filters, сконфигурировав условия, такие как =, != >, и т.д и выбрав значения для:
- Service name - сервис, выбирается из выпадающего списка запущенных сервисов
- Span name - название спана, выбирается из выпадающего списка
- Duration - продолжительность спана, задается временным периодом
- Tags - теги.

Настройки Span Filters
Под фильтром располагается панель Service & Operation, где вы можете увидеть детали прохождения запроса и выполняемые операции.

Отображение деталей трассировки
Из любого спана можно перейти к логам, относящимся к этому же запросу или сервису. Это реализуется через клик на иконку документа в деталях спана, которая открывает разделенный вид (split view) в Explore с уже настроенным запросом для источника логов Loki.
Drilldown
- Drilldown → Traces - ключевой инструмент для распределенной трассировки и отладки отображается в интерфейсе . Это упрощенный интерфейс для исследования распределенных трассировок, который позволяет анализировать данные без необходимости писать сложные запросы на языке TraceQL.

Отображение трассировки в Drilldown
Это представление позволяет:
- «проваливаться» (drill down) от метрик и алертов к конкретным трассировкам
- видеть полный путь запроса через микросервисы
- анализировать задержки на каждом этапе.
На верхней панели вы можете задать:
- Источник данных, выбрав его из выпадающего списка. ESB интегрирован с системой Tempo.
- Временной диапазон, выбрав его из выпадающего списка, например,
Last 30 minutes. - Тип запросов (spans)
Root spansилиAll spans. - Фильтр по меткам (labels), например,
resource.host.name. - Идентификатор конкретной трассировки
Trace ID.
Ниже отображаются агрегированные метрики, основанные на RED-сигналах (Rаte, Errors, Duration), которые помогают быстро оценить общее состояние системы.
- График частоты запросов
Span rate: Показывает количество запросов (spans) в секунду. - График ошибок
Errors: Отображает количество ошибок во времени, выделяя проблемные области. - Тепловая карта длительности
Duration: Визуализирует распределение задержек, помогая выявить аномалии.
Вы можете выбрать для анализа любую из этих диаграмм с помощью radio button в левом верхнем углу соответствующего виджета.
В зависимости от выбора анализируемой диаграммы, в нижней части рабочей области отображается контекстно-зависимый набор вкладок для более детального анализа трассировок.
Например, при выборе диаграммы Errors вам будут доступны следующие вкладки, между которыми вы можете переключаться:
- Разбивка (Breakdown): Позволяет сгруппировать ошибки по различным атрибутам (например, по имени сервиса или операции), чтобы увидеть общие паттерны.
- Агрегированную структура цепочки ошибок (Root Cause Errors): Визуализация того, как ошибки в нижележащих (глубоких) сервисах и операциях приводят к сбоям на верхнем уровне .
- Сравнение (Comparison): Сравнивает атрибуты между разными группами трассировок (например, между успешными и ошибочными запросами), чтобы выявить корневые причины.
- Исключения (Exceptions): Группирует сообщения об исключениях для быстрого доступа к конкретным ошибкам.
- Трассировки с ошибками (Errored traces): Показывает список конкретных трассировок, в которых произошла ошибка.
Список трассировок для каждого вида отображается на последней из вкладок. Для Span rate это вкладка Traces, для Errors это вкладка Errored traces. для Duration это вкладка Slow traces.
Когда вы переходите к конкретной трассировке (например, кликнув по ней в списке), открывается представление trace view. Здесь отображается:
- Водопадная диаграмма (Timeline)
- Детали запроса
- Фильтры для запросов
Explore
- Explore - предстваление, которе позволяет открыть любой трейс в полнофункциональном интерфейсе Explore для написания сложных запросов на TraceQL (язык запросов для трассировки, поддерживаемый Tempo)
Вы можете построить запрос на вкладке Search, задав критерий поиска - условие (equals, not equals, etc...) и значение из выпадающего списка для Service Name, Span Name, Status, а такхе просто задать значение Duration и Tags. Помимо того, вы можете настроить опции поиска.
Также вы можете написать запрос вручную на вкладке TraceQL.
Чтобы добавить новый запрос к созданному, нажмите Add Query.
Результаты выполнения запроса или поиска отобразятся в таблице Traces под настройками поиска/запроса.

Отображение трейсов в Explore
Данные спанов в трейсинге
В Bercut ESB спаны отправляются асинхронно (не блокируют основной поток) и содержат trace_id, span_id, временные метки и атрибуты действия.
Каждый спан содержит:
| Поле | Описание |
|---|---|
| Trace ID | Уникальный ID для всей цепочки |
| Span ID | Уникальный ID текущего спана. |
| Parent Span ID | Ссылка на родительский спан (для построения дерева вызовов). |
| Operation Name | Текст действия (например, "Send to Configuration service"). |
| Start & End timestamps | Время начала и окончания операции |
| Tags/Attributes | rout_name, version, user, http.status_code, file_size и т.д. |
| Logs/Events | Сообщения об ошибках (если DSL не скомпилировался или файл не найден). |