Query Tracing
Содержание
Обзор функции
Функция распределённого трассирования запросов предоставляет возможности полного трассирования цепочки вызовов в архитектуре микросервисов за счёт сбора метаданных о межсервисных вызовах, помогая пользователям быстро локализовать проблемы в кросс-сервисных вызовах. Эта функция в основном решает следующие задачи:
- Трассировка цепочки запросов: Восстановление полного пути запроса в сложных распределённых системах.
- Анализ узких мест производительности: Выявление аномальных узлов вызова по времени выполнения в цепочке.
- Определение корня неисправности: Быстрая локализация точки возникновения ошибки с помощью маркировки ошибок.
Применимые сценарии включают:
- Быстрая локализация аномальных сервисов при устранении неисправностей в продуктивной среде.
- Выявление участков с высокой задержкой вызовов при оптимизации производительности.
- Проверка взаимосвязей межсервисных вызовов после выпуска новой версии.
Ключевые ценности:
- Повышение наблюдаемости распределённых систем.
- Сокращение среднего времени восстановления (MTTR).
- Оптимизация производительности межсервисных вызовов.
Основные возможности
- Многомерный поиск: поддержка 6 комбинаций условий запроса, таких как TraceID, имя сервиса, метки и др.
- Визуальный анализ: наглядное отображение иерархии вызовов и распределения времени с помощью временных водопадных диаграмм.
- Точная локализация: поддержка фильтрации по ошибочным Span и вторичных поисков с метками.
Преимущества функции
- Быстрая идентификация проблем: сужение области поиска за счёт многомерных условий ускоряет локализацию неисправностей.
- Визуальное представление: использование временных водопадных диаграмм для наглядного отображения связей вызовов снижает сложность и повышает эффективность анализа ошибок.
- Гибкость и разнообразие: поддержка как простых запросов, так и сложных комбинаций, адаптированных под различные сценарии эксплуатации и разработки.
Tracing Query
Шаг 1: Комбинирование условий запроса
Совет: условия запроса можно комбинировать. Вы можете уточнить поиск, добавляя несколько условий.
Шаг 2: Выполнение запроса
- После выбора условий и ввода значений нажмите кнопку Add to Query Conditions, текущие условия отобразятся в области Query Conditions и будет выполнен запрос.
- Также можно развернуть Common Query Conditions для быстрого добавления недавно использованных условий поиска.
Анализ результатов запроса
После ввода условий и выполнения поиска на странице появится область с результатами запроса.
Список Span
Слева в области результатов отображается список Span, удовлетворяющих условиям, с базовой информацией: имя сервиса, вызываемый интерфейс или метод обработки запроса, длительность и время начала.
Временная водопадная диаграмма
Справа в области результатов временная водопадная диаграмма наглядно показывает связи вызовов между Span в одном трассировании. Основные особенности использования временных водопадных диаграмм при анализе трассировки:
- Раскрытие сверху вниз: в диаграмме вызовы (Span) обычно разворачиваются вниз от верхней части, каждая горизонтальная полоса представляет вызов сервиса или процесс. Положение отражает логический порядок вызовов.
- Выравнивание по временной оси: горизонтальная ось — время. Длина полосы показывает длительность вызова, что позволяет интуитивно сравнивать временные отношения между вызовами.
- Отступы: отступы показывают иерархию вызовов, чем глубже отступ, тем глубже уровень вызова в цепочке.
- Интерактивность и подробные данные: клик по полосам диаграммы отображает более детальную информацию о вызове.
Детали Span
Кликнув по строке Span на временной водопадной диаграмме, можно развернуть и просмотреть подробную информацию о Span, включая:
- Service: сервис, к которому относится Span.
- Span Duration (ms): длительность Span.
- URL: URL, к которому обращался сервис, соответствует http.url в тегах Span.
- Tag: информация о метках Span в виде пар ключ-значение, используется для расширенного поиска по тегам. Кнопка рядом с меткой позволяет добавить текущее условие Tag в условия запроса для более точного поиска.
- JSON: исходная JSON-структура Span для более глубокого изучения внутренней информации.