Когда вызовы между enterprise микросервисами сложны, APM Agents отбирают некоторые запросы и перехватывают соответствующие запросы и последующую информацию о вызовах. Например, в сценарии, когда service A вызывает service B, а затем service C, после получения запроса service A, APM определяет, трассировать ли запрос, на основе интеллектуального алгоритма выборки.
Интеллектуальный алгоритм выборки
APM использует интеллектуальный алгоритм выборки для определения, трассировать ли запросы.
- Если запрос необходимо трассировать, генерируется trace ID, и перехватываются детали (события) некоторых важных методов (обычно структура дерева с отношениями «родитель‑потомок») под service A. Одновременно trace ID прозрачно передаётся в service B. Важные методы под service B также перехватываются. trace ID также прозрачно передаётся в service C. Некоторые методы под service C перехватываются аналогичным образом, как в service B и service A. Каждый узел соответственно сообщает информацию о событиях, и на основе trace ID может быть сформировано отношение ассоциации. Таким образом, вы можете просматривать детали вызова всего запроса, опираясь на trace ID.
- Если запрос не нуждается в трассировке, trace ID не генерируется. Service B не получает trace ID и использует тот же алгоритм, что и Service A, чтобы определить, выполнять ли трассировку.
- После того как данные отправлены, APM хранит не только все детали событий, но и информацию о корневом событии (называемом span) каждого сервиса для последующего поиска трассировки. Как правило, вы ищете информацию о span и затем получаете общие детали трассировки на основе trace ID в информации о span.
- По умолчанию используется интеллектуальная политика семплинга. Существует три типа URL: error URLs, slow URLs (используется значение по умолчанию 800 ms или задаётся пользовательский порог) и normal URLs. Коэффициент семплинга для каждого типа URL рассчитывается отдельно. Для APM статистика собирается и отправляется каждую минуту. В первый период сбора все URL рассматриваются как normal для семплинга. Во второй период URL классифицируются как error, slow и normal URL на основе статистики, собранной в предыдущем периоде.
- Скорость семплинга error URLs: Если использование CPU менее 30 %, собирается 100 записей в минуту. Если использование CPU больше или равно 30 % но менее 60 %, собирается 50 записей в минуту. Если использование CPU больше или равно 60 %, собирается 10 записей в минуту. Для каждого URL собирается как минимум две записи.
- Частота выборки медленных URL: Если использование CPU менее 30%, собирается 100 записей в минуту. Если использование CPU больше или равно 30%, но менее 60%, собирается 50 записей в минуту. Если использование CPU больше или равно 60%, собирается 10 записей в минуту. Для каждого URL собираются не менее двух записей.
- Частота выборки обычных URL: Если использование CPU менее 30%, собирается 20 записей в минуту. Если использование CPU больше или равно 30%, но менее 60%, собирается 10 записей в минуту. Если использование CPU больше или равно 60%, собирается 5 записей в минуту. Для каждого URL собирается не менее одной записи.
Преимущество предыдущего алгоритма заключается в том, что после генерации информации трассировки ссылка полностью сформирована, что помогает принимать правильные решения. Если вызывается большое количество URL, аномальные запросы могут не быть собраны. В этом случае вы можете собирать метрики для локализации системных исключений.
Trace Search
Эта функция используется для поиска информации о span, то есть корневого события узла. Трассировку можно найти в нескольких средах. Например, в сценарии, когда сервис A вызывает сервис B, а затем сервис C, одна и та же трассировка может быть найдена в сервисах A, B и C.
- Войдите в консоль управления.
- Нажмите
слева и выберите Управление и Развертывание > Application Performance Management. - В навигационной панели выберите Мониторинг приложений > Трассировка.
- Выберите диапазон времени в правом верхнем углу страницы. По умолчанию: Последние 20 минут. Опции: Последние 20 минут, Последний час, Последние 3 часа, Последние 6 часов, Последний день, Сегодня, Вчера, или Пользовательский.
- Укажите следующие критерии поиска или добавьте пользовательские критерии для запроса трасс.
Таблица 1 Критерии поиска трасс Критерий поиска
Описание
Обязательно
Приложение
Приложение, к которому относится трасса.
Да
Регион
Регион, в котором расположена трасса.
Да
Компонент
Компонент, к которому относится трасса.
Нет
Среда
Среда, к которой относится трасса.
Нет
Экземпляр
Экземпляр, к которому относится трасса.
Нет
URL
URL трассы, который может быть REST URL или реальным URL. REST URL содержит имя переменной, например, /apm/get/{id}. Реальный URL указывает фактический URL.
Нет
Точный поиск
Определяет, следует ли выполнять точное сопоставление URL-адресов. Если эта опция выбрана, выполняется точное сопоставление. Если эта опция не выбрана, выполняется нечеткое сопоставление.
Нет
Метод вызова
HTTP-метод трассы.
Нет
Код состояния
HTTP код состояния, возвращаемый трассой.
Нет
Время отклика
Диапазон времени отклика трассы. Вы можете указать минимальное и максимальное время отклика для поиска трассы или оставить их пустыми.
Нет
Исключение или нет
Определяет, следует ли фильтровать трассы, рассматриваемые как исключения.
Нет
ID трассы
Если вы укажете этот параметр, другие критерии поиска становятся недействительными, и поиск будет выполнен на основе указанного ID трассы.
Нет
Пользовательский параметр
- Поддерживается пользовательский поиск для otel.scope.name и thread.id только. Для получения дополнительной информации обратитесь к персоналу O&M.
- Ищите трассы по параметру вызова. Формат key=value. Пример: exceptionMsg=failed.
- Настройте необходимые параметры перед поиском трасс по пользовательскому параметру. Например, если вы настроили Ключ для перехвата значения заголовка, Ключ для перехвата значения параметра, и Ключ для перехвата значения cookie для мониторинга URL вы можете установить key=value для поиска, например, httpMethod=POST.
Подробности о том, как настроить мониторинг URL, см Настройка элемента мониторинга URL.
Нет
Global Trace ID
Глобальный ID трассы. Если вы укажете этот параметр, другие критерии поиска станут недействительными, и поиск будет выполнен на основе указанного вами trace ID.
Нет
Код приложения
Если вы настроили Длина кода сервиса, Ключ для перехвата кода сервиса, and Нормальный код сервиса, соответствующие коды приложений будут собраны. Вы можете искать информацию по кодам приложений. Обычно значение Код приложения совпадает со значением Нормального кода сервиса. Для получения подробной информации о том, как настроить мониторинг URL, см. Настройка элемента мониторинга URL.
Нет
- Нажмите Search Trace чтобы отфильтровать трассы, соответствующие критериям поиска.
- Отображаются только трассы успешных или неуспешных запросов. Следующее использование Successful Request в качестве примера.
- Нажмите зеленую кнопку рядом с Successful Request, отображаются только трассы успешных запросов. Красная кнопка рядом с Failed Request становится неактивной.
- Если нажать зеленую кнопку еще раз, отображаются трассы как успешных, так и неуспешных запросов. Красная кнопка более не неактивна.
- Зеленая и красная кнопки не могут быть неактивными одновременно.
- Response Time: время отклика трассы. Нажмите Response Time. Трассы сортируются по времени отклика в порядке убывания, и
отображается. Нажмите Время отклика снова. Трассы сортируются по времени отклика в порядке возрастания, и
отображается. Нажмите Время отклика в третий раз. Список трасс восстановлен до исходного состояния и
отображается. - Сгенерировано: время начала трассы. Вы можете сортировать трассы по времени генерации. Метод сортировки похож на Время отклика.
- Вы можете нажать Очистить чтобы очистить критерии поиска и результаты.
Вы также можете нажать конкретный URL на странице просмотра элемента мониторинга, например, табличный вид элемента мониторинга URL. Таким образом, вы сможете быстро искать необходимую информацию о трассах на основе предустановленных критериев поиска.
- Отображаются только трассы успешных или неуспешных запросов. Следующее использование Successful Request в качестве примера.
Проверка деталей трассы
Просмотр базовой информации о трассе, отфильтрованной по критериям поиска
В отображаемом списке трасс нажмите
рядом с целевой трассой, чтобы просмотреть её базовую информацию, как показано на следующем рисунке.
Рисунок 1 Базовая информация о трассе

Описание параметра:
- HTTP‑метод трассы.
- REST‑URL трассы. REST‑URL содержит имя переменной, например, /apm/get/{id}. Вы можете нажать URL, чтобы перейти на страницу деталей трассы.
- Время начала трассы.
- HTTP‑код статуса, возвращённый трассой.
- Время отклика трассы.
- ID трассы.
- Компонент, к которому относится трасса.
- Среда, к которой принадлежит трасса.
- Хост экземпляра, к которому относится трасса.
- IP‑адрес экземпляра, к которому относится трасса.
- Фактический URL трассы.
- Просмотр логов.
- В консоли LTS настройте сбор. Подробности см Импорт текстовых логов ECS в LTS.
- Нажмите Просмотр логов перейти на страницу LTS по идентификатору трассы. Подробности см Поиск логов.
- Если функция связывания идентификаторов трасс с логами не включена, отображается диалоговое окно предупреждения. Нажмите Связать сейчас перейти на страницу настроек связывания логов. Подробности о том, как связывать логи с идентификаторами трасс, см Настройки компонента.
Просмотр полной информации о трассировке, включая локальные стеки методов и удалённые отношения вызовов
Щёлкните имя трассировки, чтобы просмотреть её детали, как показано на следующем рисунке.
- Верхняя часть — это диаграмма последовательности трассировки, показывающая полные отношения вызовов между компонентами. Эта диаграмма содержит информацию о клиенте и сервере, соответствующих каждому вызову. Чем ниже расположена линия, тем позже происходит вызов.
- Нижняя часть перечисляет детали стека методов трассировки. Каждая строка указывает вызов метода. Вы можете просмотреть детальные отношения вызовов методов трассировки. По умолчанию отображаются только методы компонентов, поддерживаемые JavaAgents. Чтобы отобразить методы приложения, настройте методы приложения, которые необходимо перехватывать, во время конфигурации JavaMethod.
Рисунок 2 Отношения вызовов

Описание параметров:
- Компонент и среда, к которым относится вызываемый API
- Время отклика (единица: ms) клиента. Вы можете подвести курсор мыши к этой цифре, чтобы посмотреть более подробную информацию.
- Время отклика (единица: мс) сервера.
- Ключевой параметр метода в стеке методов трассировки. Например, для метода входа Tomcat отображается реальный URL. Для метода вызова MySQL отображается выполненный SQL‑запрос.
- Количество участвующих компонентов.
- Параметры вызова. Щелкните
чтобы просмотреть параметры вызова. - Щелкните Просмотреть детали. Отображаются детали спана.
- Щелкните Свернуть при необходимости.
Рисунок 3 Скрытие диаграммы последовательности

Вы также можете щелкнуть Развернуть.
- Щелкните
чтобы загрузить диаграмму последовательности. - Щелкните Просмотр логов перейти на страницу LTS по trace ID. Для подробностей см. Просмотр логов.
- Трассы отображаются в виде дерева. Глубина указывает количество уровней в дереве.
Рисунок 4 Глубина
