Traces#

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

traces-visualization

Предусловия#

  • Пользователь авторизован и имеет права на редактирование дашборда.

  • Настроен источник данных трассировки (Tempo или совместимый с OpenTelemetry).

  • В системе доступны данные трассировки с корректными traceId.

  • Установлена и активна визуализация «Traces» в интерфейсе GRAF.

Правила эксплуатации#

  • Используйте Traces для анализа производительности распределенных запросов — не подходит для агрегированного анализа метрик.

  • Применяйте переменную ${traceId} — для динамической загрузки нужной трассировки.

  • Включайте Show critical path only — чтобы быстро выявить узкие места в задержках.

  • Используйте Span filters — для фокусировки на конкретных службах, операциях или по длительности.

  • Применяйте Find in trace — для поиска spans по ключевым словам (например, ошибкам).

  • Используйте Table + Traces — для поиска трассировок через TraceQL и последующей детализации.

  • Не включайте избыточные фильтры — чтобы не скрыть важные spans.

  • Убедитесь, что источник данных — Tempo или совместимый с OpenTelemetry.

  • Поддерживайте актуальность формата traceId — в соответствии с настройками трассировки в инфраструктуре.

  • Ограничивайте выборку по времени — для ускорения поиска и загрузки трассировок.

Последовательность выполнения#

  1. Убедитесь, что плагин визуализации «Traces» установлен в продукте PVV.

  2. Откройте дашборд визуализации в интерфейсе PVV.

  3. Выберите тип визуализации «Traces».

  4. Настройте параметры конфигурации

    traces-preference

  5. Нажмите кнопку «Save Dashboard», чтобы отобразить визуализацию панели.

Добавьте панель с визуализациями трассировки#

Как только данные трассировки будут доступны в вашем стеке Grafana, можно добавить панели трассировки в свои информационные панели Grafana.

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

Перед началом работы#

Для использования этой процедуры вам потребуется:

  • Экземпляр Grafana

  • Источник данных Tempo, подключенный к вашему экземпляру.

Шаги#

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

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

  1. В вашем стеке Grafana создайте новую панель мониторинга или перейдите на существующую панель мониторинга, на которую вы хотите добавить визуализации трассировки.

  2. Выполните одно из следующих действий:

    • Новая панель мониторинга - нажмите + Add visualization.

    • Существующая панель мониторинга - Нажмите Edit в правом верхнем углу, а затем выберите Visualization в раскрывающемся списке Add.

  3. Найдите и выберите соответствующий источник данных трассировки.

  4. В правом верхнем углу редактора панели выберите вкладку Visualization, выполните поиск и выберите Traces.

  5. В разделе Panel options введите название для вашей панели трассировки или попросите Grafana создать ее с помощью функций generative AI. Для получения дополнительной информации о редакторе панелей обратитесь к документации по настройке параметров панели.

  6. В редакторе запросов перейдите на вкладку тип запроса TraceQL.

  7. Введите ${traceId} в поле запроса TraceQL, чтобы создать переменную панели мониторинга. Эта переменная используется в качестве шаблона запроса.

    traces-template-query

  8. Нажмите Back to dashboard.

  9. Нажмите Settings и перейдите на вкладку Variables.

  10. Добавьте новую переменную traceId, тип переменной - Custom, при необходимости присвоив ей метку.

traces-custom-variable

  1. Нажмите «Сохранить панель мониторинга».

  2. Нажмите **Back to dashboard ** и выйдите из Редактировать.

  3. Убедитесь, что панель работает, используя действительный идентификатор трассировки для источника данных, используемого для панели трассировки, и отредактируйте идентификатор в переменной панели мониторинга.

traces-traceid-panel

Добавьте TraceQL с визуализацией таблиц#

Хотя вы можете добавить визуализацию трассировки на панель мониторинга, вручную добавлять идентификаторы трассировки в качестве переменных панели мониторинга неудобно. Вместо этого более полезно использовать запросы TraceQL для поиска определенных типов трассировок, а затем выбирать подходящие трассы из соответствующих результатов.

  1. На той же панели мониторинга, где вы добавили визуализацию трассировки, нажмите Edit в правом верхнем углу.

  2. В раскрывающемся списке Add выберите Visualization.

  3. Выберите тот же источник данных трассировки, который вы использовали в предыдущем разделе.

  4. В правом верхнем углу редактора панелей выберите вкладку Visualizations, выполните поиск и выберите Table.

  5. В редакторе запросов выберите вкладку TraceQL.

  6. В разделе Параметры панели введите название для вашей панели трассировки или попросите Grafana создать ее с помощью функций искусственного интеллекта.

  7. Добавьте соответствующий запрос TraceQL для поиска трассировок, которые вы хотели бы визуализировать на панели мониторинга. В этом примере используется простой статический запрос. Можно написать запрос TraceQL в виде шаблонного запроса, чтобы воспользоваться преимуществами других dash traces-dynamic-query

  8. Нажмите Save dashboard.

  9. Нажмите Back to dashboard и выйдите из «Редактировать».

Когда результаты возвращаются из запроса, они отображаются в таблице панели.

traces-returned-query

Параметры конфигурации#

В следующем разделе описываются параметры конфигурации, доступные в панели редактора панелей для этой визуализации.

Panel options#

В разделе Параметры панели на панели редактора панелей задайте основные параметры, такие как заголовок и описание панели, а также ссылки на панели. Дополнительные сведения смотри в разделе Настройка параметров панели.

Span filters options#

Параметры Span filters управляют начальным состоянием span filters при загрузке визуализации, позволяя вам настроить представление анализа трассировки.

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

Опция

Описание

Find in trace

Установите начальное значение, чтобы сфокусироваться на диапазонах, соответствующих вашему запросу.

Show matches only

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

Show critical path only

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

Service name

Вместе с оператором имени службы определите конкретную службу или шаблон, чтобы сузить анализ до областей, связанных с конкретными службами.

Span name

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

Min duration

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

Max duration

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

Tags

Добавьте один или несколько тегов для дальнейшего уточнения критериев фильтрации, чтобы отображались только соответствующие области.

Результат#

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

  1. Проверка отображения трассировки
    Убедитесь, что:

    • При вводе корректного traceId в переменную панели — загружается соответствующая трассировка.

    • Диаграмма трассировки отображается в виде временной диаграммы (Gantt-диаграммы), где каждый span показан как горизонтальная полоса.

    • Службы, операции и временные интервалы отображаются корректно.

    • Общая длительность трассировки указана в заголовке или на временной шкале.

  2. Проверка источника данных и запроса

    • Убедитесь, что:

      • Источник данных — Tempo (или другой совместимый с Jaeger/OTLP).

      • В редакторе запросов выбран тип TraceQL.

      • Запрос содержит переменную ${traceId} и корректно интерполируется при изменении значения переменной.

      • При обновлении значения переменной traceId — трассировка перезагружается.

  3. Проверка переменной traceId

    • Убедитесь, что:

      • Переменная traceId создана с типом Custom.

      • В интерфейсе панели отображается поле ввода для traceId.

      • При вводе нового значения — панель автоматически обновляется (или после нажатия «Применить»).

      • Поддерживается ввод traceId в формате, соответствующем вашему источнику (например, 16- или 32-символьная hex-строка).

  4. Проверка фильтров диапазонов (Span filters)

    • Убедитесь, что:

      • При включении Show matches only — отображаются только spans, соответствующие фильтрам.

      • При включении Show critical path only — выделяется критический путь (цепочка spans с наибольшей общей задержкой).

      • Фильтр Find in trace находит и подсвечивает spans по ключевому слову.

      • Фильтры по Service name, Span name, Min/Max duration и Tags работают корректно.

      • Поддерживаются переменные в фильтрах (например, $service, $operation), и они подставляются при изменении.

  5. Проверка детализации spans

    • Убедитесь, что:

      • При клике на span открывается панель с деталями.

      • В деталях отображаются:

        • Название span.

        • Длительность.

        • Временные метки начала и окончания.

        • Теги (tags), события (logs), ссылки (references).

        • Родительские и дочерние spans (иерархия).

      • Доступны действия:

        • Copy trace ID.

        • View in Tempo (если настроено).

        • Explain in Assistant (если включено).

  6. Проверка навигации и масштабирования

    • Убедитесь, что:

      • Работает горизонтальная прокрутка по временной шкале.

      • Работает масштабирование (колесико мыши или кнопки).

      • При масштабировании — детализация временных интервалов изменяется (мс, с, мин).

      • Можно фокусироваться на конкретном участке трассировки (выделение мышью).

  7. Проверка производительности и загрузки

    • Убедитесь, что:

      • Трассировка загружается за разумное время (до нескольких секунд).

      • При большом количестве spans — визуализация не зависает.

      • При отсутствии данных по traceId — отображается понятное сообщение (например, «Trace not found»).

  8. Проверка отображения в разных режимах

    • Убедитесь, что:

      • Визуализация корректно отображается в режиме редактирования и в режиме просмотра.

      • Все настройки сохраняются после перезагрузки дашборда.

      • При открытии в полноэкранном режиме — диаграмма масштабируется корректно.

  9. Проверка интеграции с другими панелями

    • Убедитесь, что:

      • Переменная traceId может быть передана из других панелей (например, из таблицы с логами или метрик).

      • При клике на строку в другой панели — traceId подставляется в переменную и панель обновляется.

  10. Проверка ошибок и граничных случаев

    • Убедитесь, что:

      • При вводе некорректного traceId — отображается сообщение об ошибке.

      • При пустом значении — не выполняется запрос или отображается подсказка.

      • При отсутствующем источнике данных — отображается предупреждение.

После выполнения всех проверок сохраните дашборд и убедитесь, что визуализация сохраняет настройки при повторном открытии. При необходимости скорректируйте параметры и повторите проверку.