Query Trace

Содержание

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

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

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

Основные ценности:

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

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

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

Trace Query

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

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

Условие запросаОписание
TraceIDУникальный идентификатор полной цепочки, с помощью которого можно выполнить поиск конкретного трассирования.
ServiceСервис или ingress-шлюз, инициирующий/принимающий запросы вызовов (обязательный ввод). Формат: <service/gateway name>.<namespace name>, например, bookinfo-gw.bookinfo-ns.
ClientКлиентский сервис или ingress-шлюз, инициирующий запрос вызова (обязательный ввод). Формат: <service/gateway name>.<namespace name>.
ServerСерверный сервис или ingress-шлюз, отвечающий на запрос вызова (обязательный ввод). Формат: <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, включая: имя сервиса, вызываемый интерфейс или метод обработки запроса, длительность и время начала.

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

Временная водопадная диаграмма справа в области результатов наглядно показывает взаимосвязи вызовов между 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 для более глубокого изучения внутренней информации.