Последнее обновление: августа 11, 2026

Редактор запросов Jaeger

В этом документе объясняется, как использовать редактор запросов Jaeger для поиска трассировок, выполнения запросов по идентификатору трассировки, визуализации зависимостей сервисов и импорта файлов трассировок.

Общие сведения о выполнении запросов к источникам данных в Grafana см. в разделе Query and transform data.

Прежде чем начать

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

Редактор запросов Jaeger поддерживает следующие типы запросов:

  • Search: поиск трассировок по сервису, операции, тегам и длительности.
  • TraceID: запрос конкретной трассировки по её идентификатору.
  • Dependency graph: визуализация зависимостей сервисов в пределах диапазона времени.
  • Import trace: загрузка файла трассировки JSON для визуализации.

Поиск трассировок

Чтобы найти трассировки:

  1. Выберите Search в селекторе Query type.
  2. Заполните форму поиска:
Поле Описание
Service Name Выберите сервис в раскрывающемся списке или начните вводить текст для фильтрации. Поддерживает переменные шаблонов.
Operation Name Выберите операцию для выбранного сервиса. Выберите All, чтобы запросить все операции. Это поле отключено, пока вы не выберете сервис.
Tags Введите теги в формате logfmt, например error=true db.statement="select * from User".
Min Duration Отфильтровывает трассировки с длительностью больше этого значения. Используйте форматы вроде 1.2s, 100ms или 500us.
Max Duration Отфильтровывает трассировки с длительностью меньше этого значения. Используйте тот же формат, что и для Min Duration.
Limit Максимальное количество возвращаемых трассировок.
Jaeger query editor showing a search query
Jaeger query editor showing a search query

Запрос по идентификатору трассировки

Чтобы запросить конкретную трассировку:

  1. Выберите TraceID в селекторе Query type.
  2. Введите идентификатор трассировки в поле Trace ID.
  3. Нажмите Shift+Enter, чтобы выполнить запрос.
Jaeger query editor with TraceID selected
Jaeger query editor with TraceID selected

Визуализация графа зависимостей

Тип запроса dependency graph отображает зависимости сервисов в виде Node Graph. Он показывает, как сервисы взаимодействуют друг с другом и объём вызовов между ними.

Чтобы визуализировать граф зависимостей:

  1. Выберите Dependency graph в селекторе Query type.
  2. Установите диапазон времени дашборда на период, который хотите проанализировать.
  3. Выполните запрос.

Граф зависимостей использует диапазон времени дашборда для запроса к конечной точке /api/dependencies Jaeger. Grafana отображает результат в виде Node Graph с:

  • Nodes: каждый узел представляет сервис.
  • Edges: каждое ребро представляет вызовы между сервисами, с количеством вызовов в качестве метки ребра.

Note

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

Импорт трассировки

Вы можете загрузить файл JSON, содержащий одну трассировку, и визуализировать её в Grafana. Если файл содержит несколько трассировок, Grafana визуализирует первую.

Чтобы импортировать трассировку:

  1. Нажмите Import trace в редакторе запросов.
  2. Выберите файл JSON в формате трассировки Jaeger.
Jaeger data source with import trace selected
Jaeger data source with import trace selected

Пример JSON трассировки

Файл JSON должен соответствовать формату трассировки Jaeger с массивом data, содержащим объекты трассировок:

JSON
{
  "data": [
    {
      "traceID": "2ee9739529395e31",
      "spans": [
        {
          "traceID": "2ee9739529395e31",
          "spanID": "2ee9739529395e31",
          "flags": 1,
          "operationName": "CAS",
          "references": [],
          "startTime": 1616095319593196,
          "duration": 1004,
          "tags": [
            {
              "key": "sampler.type",
              "type": "string",
              "value": "const"
            }
          ],
          "logs": [],
          "processID": "p1",
          "warnings": null
        }
      ],
      "processes": {
        "p1": {
          "serviceName": "loki-all",
          "tags": [
            {
              "key": "jaeger.version",
              "type": "string",
              "value": "Go-2.25.0"
            }
          ]
        }
      },
      "warnings": null
    }
  ],
  "total": 0,
  "limit": 0,
  "offset": 0,
  "errors": null
}

Запрос данных через конечную точку gRPC (экспериментально)

Jaeger предлагает альтернативный метод запроса данных, использующий их службу gRPC поверх HTTP. Подробные сведения об API и требованиях к настройке см. в документации API Jaeger.

Через конечную точку gRPC поддерживаются следующие запросы:

  • Поиск сервисов
  • Поиск операций
  • Поиск по идентификатору трассировки

Чтобы включить запросы gRPC для Jaeger в Grafana, включите флаг функции jaegerEnableGrpcEndpoint. Эта функция является экспериментальной. Клиентам Grafana Cloud следует обратиться в службу поддержки, чтобы запросить доступ и оставить отзыв об этой функции.

Использование переменных шаблонов

Редактор запросов Jaeger поддерживает переменные шаблонов Grafana для создания динамических переиспользуемых дашбордов. Вы можете использовать переменные шаблонов в следующих полях запроса:

  • Service Name
  • Operation Name
  • Trace ID
  • Tags
  • Min Duration
  • Max Duration

Используйте стандартный синтаксис переменных Grafana, такой как $variable или ${variable}, в этих полях. Например, задайте для Service Name значение $service, чтобы пользователи дашборда могли выбирать сервис в раскрывающемся списке.