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> . |
API | API, добавленное для сервиса в разделе Services > API. |
Tags | Можно фильтровать результаты запроса, вводя теги (Tag). Поддерживаются теги, найденные в деталях Span. |
Span duration > | Spans с длительностью больше или равной введённому значению (мс). |
Only error traces | Ошибочные Spans — это Spans, у которых значение тега error равно true . |
Span kind | Root 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 в одном трассировании. Основные особенности использования временных водопадных диаграмм для анализа трассировок:
- Раскрытие сверху вниз: В диаграмме вызовы (Span) обычно раскрываются вниз от верхней части, каждая горизонтальная полоса представляет вызов сервиса или процесс. Положение отражает логический порядок вызовов.
- Выравнивание по временной оси: Горизонтальная ось диаграммы — время. Длина полосы показывает длительность вызова, что позволяет интуитивно сравнивать временные отношения между вызовами.
- Отступы: Отступы показывают иерархию вызовов, чем глубже отступ, тем глубже уровень вызова в цепочке.
- Интерактивность и подробные данные: Клик по полосам диаграммы открывает подробную информацию о вызове.
Детали Span
Кликнув по строке Span на временной водопадной диаграмме, можно раскрыть подробную информацию о Span, включая:
- Service: Сервис, к которому относится Span.
- Span Duration (ms): Длительность Span.
- URL: URL, к которому обращался сервис, соответствует http.url в тегах Span.
- Tag: Информация о метках Span в виде пар ключ-значение, используется для расширенного поиска по тегам. Кнопка рядом с тегом позволяет добавить текущее условие тега в запрос для более точного поиска.
- JSON: Исходная JSON-структура Span для детального изучения внутренней информации.