• Русский
  • Query Trace

    Содержание

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

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

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

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

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

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

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

    Запрос трассировки

    Шаг 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

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

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

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

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

    Детали Span

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

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