Query Trace

Содержание

Обзор функции

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

  • Трассировка цепочки запроса: Восстановление полного пути запроса в сложных распределённых системах.
  • Анализ узких мест производительности: Выявление аномальных узлов вызова по времени выполнения в цепочке.
  • Определение корня ошибки: Быстрое локализование места возникновения проблемы с помощью маркировки ошибок.

Применимые сценарии включают:

  • Быстрый поиск аномальных сервисов при устранении неисправностей в продуктивной среде.
  • Выявление участков с высокой задержкой вызовов при оптимизации производительности.
  • Проверка взаимосвязей межсервисных вызовов после выпуска новой версии.

Ключевые преимущества:

  • Повышение наблюдаемости распределённых систем.
  • Сокращение среднего времени восстановления (MTTR).
  • Оптимизация производительности межсервисных вызовов.

Основные возможности

  • Многомерный поиск: Поддержка 9 комбинаций условий запроса, таких как TraceID, имя сервиса, метки и др.
  • Визуальный анализ: Интуитивное отображение иерархии вызовов и распределения времени с помощью временных водопадных диаграмм.
  • Точное локализование: Поддержка фильтрации по ошибочным Span и вторичных поисков с использованием меток.

Преимущества функции

  • Быстрое выявление проблем: Сужение области поиска с помощью многомерных условий ускоряет локализацию проблем.
  • Визуальное представление: Использование временных водопадных диаграмм для наглядного отображения связей вызовов снижает сложность и повышает эффективность анализа ошибок.
  • Гибкость и разнообразие: Поддержка как простых запросов, так и сложных комбинаций, адаптируется под различные сценарии эксплуатации и разработки.

Trace Query

Шаг 1: Комбинирование условий запроса

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

Условие запросаОписание
TraceIDУникальный идентификатор полной цепочки, по которому можно выполнить поиск конкретного трассирования.
ServiceСервис или ingress gateway, инициирующий/принимающий вызовы (обязательно для ввода). Формат: <service/gateway name>.<namespace name>, например, bookinfo-gw.bookinfo-ns.
ClientКлиентский сервис или ingress gateway, инициирующий вызов (обязательно для ввода). Формат: <service/gateway name>.<namespace name>.
ServerСерверный сервис или ingress gateway, отвечающий на вызов (обязательно для ввода). Формат: <service/gateway name>.<namespace name>.
APIAPI, добавленное для сервиса в разделе Services > API.
TagsМожно фильтровать результаты запроса, вводя теги (Tag). Поддерживаются теги, найденные в деталях Span.
Span duration >Spans с длительностью больше или равной введённому значению (мс).
Only error tracesОшибочные Spans — это Spans, у которых значение тега error равно true.
Span kindRoot Span: Поиск корневых Spans, инициированных указанным сервисом. Используется, когда сервис является инициатором всего запроса.
Service Entry Span: Поиск первого Span, созданного при вызове указанного сервиса в роли сервера.
Max query countМаксимальное количество Spans для запроса, по умолчанию 200.
Совет: Для производительности платформа отображает не более 1000 Spans за один раз. Если количество Spans, соответствующих условиям, превышает максимальное количество, уточните условия запроса или сузьте временной диапазон для поэтапного поиска.

Шаг 2: Выполнение запроса

  • После выбора условий и ввода значений нажмите кнопку Add to query, текущие условия отобразятся в области Query, и будет выполнен запрос.
  • Также можно развернуть Common search condition для быстрого добавления недавно использованных условий.

Анализ результатов запроса

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

Список Span

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

Временная водопадная диаграмма

Справа в области результатов находится временная водопадная диаграмма, которая наглядно отображает связи вызовов между Span в одном трассировании. Основные особенности использования временных водопадных диаграмм для анализа трассировок:

  1. Раскрытие сверху вниз: В диаграмме вызовы (Span) обычно раскрываются вниз от верхней части, каждая горизонтальная полоса представляет вызов сервиса или процесс. Положение отражает логический порядок вызовов.
  2. Выравнивание по временной оси: Горизонтальная ось диаграммы — время. Длина полосы показывает длительность вызова, что позволяет интуитивно сравнивать временные отношения между вызовами.
  3. Отступы: Отступы показывают иерархию вызовов, чем глубже отступ, тем глубже уровень вызова в цепочке.
  4. Интерактивность и подробные данные: Клик по полосам диаграммы открывает подробную информацию о вызове.

Детали Span

Кликнув по строке Span на временной водопадной диаграмме, можно раскрыть подробную информацию о Span, включая:

  • Service: Сервис, к которому относится Span.
  • Span Duration (ms): Длительность Span.
  • URL: URL, к которому обращался сервис, соответствует http.url в тегах Span.
  • Tag: Информация о метках Span в виде пар ключ-значение, используется для расширенного поиска по тегам. Кнопка рядом с тегом позволяет добавить текущее условие тега в запрос для более точного поиска.
  • JSON: Исходная JSON-структура Span для детального изучения внутренней информации.