Query Tracing
Содержание
Обзор функции
Функция распределённого трассирования запросов предоставляет возможности полного трассирования цепочки вызовов в архитектуре микросервисов за счёт сбора метаданных о межсервисных вызовах, помогая пользователям быстро локализовать проблемы в кросс-сервисных вызовах. Эта функция в основном решает следующие задачи:
- Трассировка цепочки запросов: Восстановление полного пути запроса в сложных распределённых системах.
- Анализ узких мест производительности: Выявление аномальных узлов вызова по времени выполнения в цепочке.
- Определение корня неисправности: Быстрая локализация точки возникновения ошибки с помощью маркировки ошибок.
Применимые сценарии включают:
- Быстрая локализация аномальных сервисов при устранении неисправностей в продуктивной среде.
- Выявление участков с высокой задержкой вызовов при оптимизации производительности.
- Проверка взаимосвязей межсервисных вызовов после выпуска новой версии.
Ключевые ценности:
- Повышение наблюдаемости распределённых систем.
- Сокращение среднего времени восстановления (MTTR).
- Оптимизация производительности межсервисных вызовов.
Основные возможности
- Многомерный поиск: поддержка 6 комбинаций условий запроса, таких как TraceID, имя сервиса, метки и др.
- Визуальный анализ: наглядное отображение иерархии вызовов и распределения времени с помощью временных водопадных диаграмм.
- Точная локализация: поддержка фильтрации по ошибочным Span и вторичных поисков с метками.
Преимущества функции
- Быстрая идентификация проблем: сужение области поиска за счёт многомерных условий ускоряет локализацию неисправностей.
- Визуальное представление: использование временных водопадных диаграмм для наглядного отображения связей вызовов снижает сложность и повышает эффективность анализа ошибок.
- Гибкость и разнообразие: поддержка как простых запросов, так и сложных комбинаций, адаптированных под различные сценарии эксплуатации и разработки.
Tracing Query
Шаг 1: Комбинирование условий запроса
Совет: условия запроса можно комбинировать. Вы можете уточнить поиск, добавляя несколько условий.
Условие запроса | Описание |
---|
TraceID | Уникальный идентификатор полной цепочки, по которому можно выполнить поиск конкретного трассирования. |
Service | Сервис, инициирующий или принимающий запрос вызова (необходимо выбрать или ввести). |
Label | Можно фильтровать результаты запроса по введённым меткам (Tag), поддерживаются метки из деталей Span. |
Span Duration Greater Than | Spans с длительностью больше или равной введённому значению (мс). |
Only Search Error Spans | Ошибочные Spans — это Spans, у которых значение тега error равно true . |
Span Type | Root 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 в одном трассировании. Основные особенности использования временных водопадных диаграмм при анализе трассировки:
- Раскрытие сверху вниз: в диаграмме вызовы (Span) обычно разворачиваются вниз от верхней части, каждая горизонтальная полоса представляет вызов сервиса или процесс. Положение отражает логический порядок вызовов.
- Выравнивание по временной оси: горизонтальная ось — время. Длина полосы показывает длительность вызова, что позволяет интуитивно сравнивать временные отношения между вызовами.
- Отступы: отступы показывают иерархию вызовов, чем глубже отступ, тем глубже уровень вызова в цепочке.
- Интерактивность и подробные данные: клик по полосам диаграммы отображает более детальную информацию о вызове.
Детали Span
Кликнув по строке Span на временной водопадной диаграмме, можно развернуть и просмотреть подробную информацию о Span, включая:
- Service: сервис, к которому относится Span.
- Span Duration (ms): длительность Span.
- URL: URL, к которому обращался сервис, соответствует http.url в тегах Span.
- Tag: информация о метках Span в виде пар ключ-значение, используется для расширенного поиска по тегам. Кнопка рядом с меткой позволяет добавить текущее условие Tag в условия запроса для более точного поиска.
- JSON: исходная JSON-структура Span для более глубокого изучения внутренней информации.