Запрос данных трассировки
Редактор запросов источника данных Tempo помогает запрашивать и отображать трассировки из Tempo в Explore. Запросы используют TraceQL, язык запросов, созданный специально для трассировки.
Общую документацию по запросам к источникам данных в Grafana см. в разделе Запрос и преобразование данных.
Tip
Не знаете TraceQL? Попробуйте Grafana Traces Drilldown, интуитивное приложение без запросов, которое позволяет исследовать данные трассировки с помощью метрик RED.
Перед началом
Вы можете составлять запросы TraceQL в Grafana и Grafana Cloud, используя Explore и источник данных Tempo.
Note
Перед выполнением запросов убедитесь, что ваш источник данных Tempo настроен и подключён. Если запросы возвращают пустые результаты или ошибки, обратитесь к разделу Настройка источника данных Tempo, чтобы проверить настройки подключения и аутентификации.
Вам не нужно знать TraceQL, чтобы создать запрос. Конструктор запросов Search позволяет выбирать параметры из раскрывающихся списков, чтобы строить запрос визуально. Эти выборы генерируют запрос TraceQL, который вы можете перенести в редактор TraceQL для дальнейшего уточнения.
Запросы TraceQL следуют шаблону { conditions } | pipeline, где условия внутри {} выбирают промежутки, а операторы конвейера, такие как count() или avg(), агрегируют результаты.
Чтобы изучить полный синтаксис, обратитесь к разделу
Создание запроса TraceQL.
Обзор языка см. в
документации TraceQL.
Выбор режима редактирования запросов
Редактор запросов имеет три Query types, которые вы можете использовать для исследования данных трассировки. Вы можете использовать эти режимы по отдельности или в комбинации для создания строительных блоков для генерации пользовательских запросов. Добавление ещё одного запроса добавляет новый блок запроса. Дополнительную информацию см. в разделе Совместное использование типов запросов.

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

Редактор запросов TraceQL
Используйте редактор TraceQL, когда вам нужны сложные фильтры, структурные запросы по родительским и дочерним промежуткам или агрегации, которые не поддерживает конструктор Search. Редактор предоставляет автодополнение для имён атрибутов, областей (scopes) и операторов. Вы также можете найти трассировку по ID, введя его непосредственно в поле запроса.
Примеры запросов для копирования см. в разделе Примеры запросов TraceQL. Дополнительную информацию см. в разделе Написание запросов TraceQL с помощью редактора.

Представление Service graph
Представление Service Graph отвечает на другой вопрос, чем поиск трассировок: вместо поиска отдельных трассировок оно визуализирует, как соединяются ваши службы, и выделяет частоту запросов, частоту ошибок и длительность (метрики RED) по этим соединениям.
Используя представление Service Graph, вы можете:
- Обнаруживать промежутки, которые постоянно возвращают ошибки, и частоту их возникновения.
- Получить обзор общей частоты вызовов промежутков по вашим службам.
- Определить, сколько времени занимают самые медленные запросы в вашей службе.
- Изучать все трассировки, содержащие промежутки, представляющие особый интерес, на основе значений частоты, ошибок и длительности (сигналов RED).
Service Graph требует настройки генерации метрик. Дополнительную информацию см. в разделе Service Graph и представление Service Graph.

Понимание поведения поиска
Поиск Tempo недетерминирован. Когда вы запускаете поиск, Tempo выполняет массово параллельное сканирование за выбранный диапазон времени и возвращает первые N совпадающих результатов. Даже идентичные поиски могут возвращать разные результаты из-за различий в нагрузке на машины и сетевой задержке.
Этот дизайн отдаёт приоритет скорости над предсказуемостью. Чтобы сделать результаты детерминированными, добавьте предложение with к вашим запросам TraceQL, например { status = error } with (most_recent=true), чтобы Tempo возвращал самые последние совпадающие трассировки. Дополнительную информацию см. в разделе
Получение самых последних результатов.
Использование панелей TraceQL в дашбордах
Чтобы добавить панели TraceQL в ваш дашборд, обратитесь к документации панели Traces.
Чтобы узнать больше о дашбордах Grafana, обратитесь к документации по использованию дашбордов.
Примеры дашбордов с трассировками см. на Grafana Play.
Настройка параметров для конструктора запросов и редактора
Следующие параметры доступны для типов запросов Search и TraceQL. Вы можете изменить эти настройки в разделе Options.

После изменения любого параметра повторно выполните запрос, чтобы применить обновления.
- Limit
- Определяет максимальное количество трассировок для возврата. Значение по умолчанию —
20. - Span Limit
- Задаёт максимальное количество промежутков для возврата для каждого набора промежутков. Значение по умолчанию —
3. - Table Format
- Определяет, отображается ли таблица результатов запроса с фокусом на Traces или на Spans. Traces — выбор по умолчанию. Когда выбрано Traces, таблица результатов начинается с ID трассировки. Когда выбрано Spans, таблица начинается со службы трассировки.
- Step
- Определяет шаг для запросов метрик. Используйте нотацию длительности, например
30msили1m. - Streaming
- Указывает, активна ли потоковая передача. Потоковая передача позволяет просматривать частичные результаты запроса до завершения всего запроса. Активация потоковой передачи добавляет раздел Table - Streaming Progress к результатам запроса.
Совместное использование типов запросов
Вы можете использовать + Add query, чтобы создавать пользовательские запросы, использующие один или несколько типов запросов вместе. Каждый раз, когда вы добавляете новый запрос, он добавляет новый раздел, или блок запроса, содержащий пользовательский интерфейс Search, TraceQL или Service Graph.
Добавленный запрос и таблица результатов появляются в навигации под Queries и Tables соответственно. Вы можете использовать навигацию для просмотра блоков запроса, таблицы результатов и графа служб.
Чтобы добавить блок запроса:
- Выберите + Add query.
- Выберите тип запроса: Search, TraceQL или Service Graph.
Чтобы удалить блок запроса, выберите значок мусорной корзины Remove query.
Чтобы переименовать блок, выберите значок редактирования Rename рядом с именем блока запроса. Имя меняется в списке запросов и таблиц.
Дополнительные параметры блока запроса
Каждый блок запроса имеет набор значков в правом верхнем углу.

Эти значки включают:
- Show data source help
- Отображает Tempo Cheat Sheet со ссылками на документацию.
- Create recorded query
- Позволяет сохранить текущий блок запроса как записанный запрос. Эта опция доступна в Grafana Cloud и Grafana Enterprise. Дополнительную информацию см. в разделе Записанные запросы.
- Duplicate query
- Копирует текущий блок и добавляет новый идентичный блок.
- Remove query
- Удаляет блок запроса.
Использование истории запросов и query inspector
Explore предоставляет историю всех запросов, которые вы использовали в источнике данных, и инспектор, который позволяет просматривать статистику, проверять запросы, просматривать JSON и общую информацию о запросах к вашему источнику данных.
Дополнительную информацию см. в разделах Query inspector в Explore и Управление запросами в Explore.
Загрузка файла трассировки JSON
Вы можете загрузить файл JSON, содержащий одну трассировку, и визуализировать её. Если в файле несколько трассировок, Grafana визуализирует первую трассировку.
Чтобы загрузить файл трассировки:
- Выберите Explore в Grafana.
- Выберите Import trace рядом с селектором типа запроса.
- Загрузите ваш файл трассировки JSON.
Чтобы скачать трассировку или Service Graph через панель Inspector:
- Откройте инспектор.
- Перейдите на вкладку Data.
- Нажмите Download traces или Download Service Graph.
Кросс-арендные запросы TraceQL
Если вы настроили мультистековый источник данных Tempo, вы можете выполнять запросы TraceQL по этим стекам и арендаторам.
Запросы, выполняемые с использованием кросс-арендного настроенного источника данных, как в Explore, так и внутри дашбордов, выполняются по всем арендаторам, которые вы указали в заголовке X-Scope-OrgID.
Запросы TraceQL, которые сравнивают несколько наборов промежутков, могут неверно возвращать не все трассировки в кросс-арендном запросе. Например,
{ span.attr1 = "bar" } && { span.attr2 = "foo" }
TraceQL вычисляет непрерывно хранимую трассировку. Если эти два условия выполняются в разных арендаторах, Tempo не возвращает трассировку.
Информацию о настройке источника данных Tempo см. в разделе Настройка мультистекового источника данных Tempo в Grafana.
Информацию о требованиях к конфигурации Tempo см. в документации Кросс-арендный запрос и Включение мультиарендности.
Дальнейшие шаги
- Примеры запросов TraceQL — примеры запросов для копирования для распространённых случаев использования
- Создание запроса TraceQL — полный синтаксис, области и операторы TraceQL
- Service Graph и представление Service Graph — визуализируйте зависимости служб и метрики RED
- Фильтры промежутков — уточняйте результаты трассировки после запроса
- Настройка источника данных Tempo — подключение, аутентификация и настройки функций