Query Tracing

Содержание

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

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

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

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

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

Ключевые ценности:

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

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

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

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

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

Tracing Query

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

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

Условие запросаОписание
TraceIDУникальный идентификатор полной цепочки, по которому можно выполнить поиск конкретного трассирования.
ServiceСервис, инициирующий или принимающий запрос вызова (необходимо выбрать или ввести).
LabelМожно фильтровать результаты запроса по введённым меткам (Tag), поддерживаются метки из деталей Span.
Span Duration Greater ThanSpans с длительностью больше или равной введённому значению (мс).
Only Search Error SpansОшибочные Spans — это Spans, у которых значение тега error равно true.
Span TypeRoot Span: поиск корневых Span, инициированных указанным сервисом. Этот режим используется, когда указанный сервис является инициатором всего запроса.
Service Entry Span: поиск первого Span, созданного при вызове указанного сервиса в роли сервера.
Maximum Query CountМаксимальное количество Span, которые можно запросить, по умолчанию 200.
Совет: для производительности платформа отображает не более 1000 Span за один раз. Если количество Span, удовлетворяющих условиям, превышает максимальное количество запросов, можно уточнить условия или сузить временной диапазон для поэтапного запроса.

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

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

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

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

Список Span

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

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

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

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

Детали Span

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

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