Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Что такое инструмент трассировки?
Trace — это инструмент для устранения неполадок и мониторинга API-прокси, работающих на Apigee Edge. Trace позволяет детально изучить каждый шаг в процессе работы API-прокси.
Посмотрите это видео, чтобы ознакомиться с инструментом трассировки.
Как использовать трассировку
Использовать Trace очень просто. Вы запускаете сеанс трассировки, затем выполняете вызов API к платформе Edge и считываете результаты.
- Перейдите на страницу API-прокси, как описано ниже.
Край
Чтобы получить доступ к странице API-прокси через пользовательский интерфейс Edge:
- Войдите на сайт apigee.com/edge .
- В левой панели навигации выберите «Разработка» > «API-прокси» .
Классический Edge (частное облако)
Чтобы получить доступ к странице API-прокси с помощью классического интерфейса Edge:
- Войдите в систему по
http:// ms-ip :9000, где ms-ip — это IP-адрес или DNS-имя узла сервера управления. - В верхней панели навигации выберите API > API-прокси .
- Выберите API-прокси на странице «API-прокси».
- Убедитесь, что API, который вы хотите отслеживать, развернут.
- Нажмите кнопку «Трассировка» , чтобы перейти к окну инструмента «Трассировка».
- Используйте раскрывающееся меню «Развертывание для трассировки» , чтобы выбрать среду развертывания и версию прокси-сервера, которые вы хотите отслеживать.
- Нажмите «Начать сеанс трассировки» . Когда сеанс трассировки активен, API-прокси записывает подробную информацию о каждом шаге в конвейере обработки. Во время выполнения сеанса трассировки сообщения и контекстные данные захватываются из реального трафика.

- Если через ваш прокси-сервер не проходит активный трафик, просто отправьте запрос к API. Вы можете использовать любой инструмент для отправки запроса, например, curl, Postman или любой другой привычный инструмент. Или вы можете отправить запрос непосредственно из инструмента трассировки. Просто введите URL-адрес и нажмите «Отправить» . Примечание: из инструмента трассировки можно отправлять только GET-запросы, но не POST-запросы.
Примечание: Одна сессия трассировки может поддерживать 10 транзакций запрос/ответ на каждый обработчик сообщений через выбранный API-прокси. В облаке Edge, при обработке трафика двумя обработчиками сообщений, поддерживается 20 транзакций запрос/ответ. Сессия трассировки автоматически останавливается через 10 минут, если вы не остановите ее вручную. - Когда будет зафиксировано достаточное количество запросов, нажмите кнопку «Остановить сеанс трассировки» .
- В левом меню отображается список перехваченных транзакций запроса/ответа. Щелкните любую из транзакций, чтобы просмотреть подробные результаты.
Как расшифровать трассировку
Инструмент трассировки состоит из двух основных частей: карты транзакций и подробной информации о фазах:
- Карта транзакций использует значки для обозначения каждого важного шага, происходящего во время транзакции API-прокси, включая выполнение политик, условные шаги и переходы. Наведите курсор на любой значок , чтобы увидеть сводную информацию. Шаги потока запроса отображаются в верхней части карты транзакций, а шаги потока ответа — в нижней.
- В разделе « Подробности этапа» инструмента отображается информация о внутренней обработке прокси-сервера, включая установленные или считанные переменные, заголовки запроса и ответа и многое другое. Щелкните любой значок, чтобы просмотреть подробности этапа для этого шага.
Вот пример карты трассировки, созданной с помощью инструмента, с обозначением основных сегментов обработки прокси-сервера:
Карта транзакций инструмента трассировки

Легенда карты транзакций
В следующей таблице описано назначение значков, которые вы увидите на карте транзакций. Эти значки отмечают каждый из важных этапов обработки на протяжении всего процесса работы прокси-сервера.
Значки карты транзакций
![]() | Клиентское приложение, отправляющее запрос на ProxyEndpoint API-прокси. |
| Кружками обозначены переходные конечные точки в потоке прокси-запроса. Они находятся там, где поступает запрос от клиента, когда запрос отправляется целевому объекту, когда от целевого объекта приходит ответ, и когда ответ возвращается клиенту. | |
Высокие полосы указывают на начало сегмента потока в потоке API-прокси. Сегменты потока: запрос ProxyEndpoint, запрос TargetEndpoint, ответ TargetEndpoint и ответ ProxyEndpoint. Сегмент включает в себя предварительный поток (PreFlow), условные потоки (Conditional Flows) и постпоток (PostFlow). Дополнительную информацию см. в разделе «Настройка потоков» . | |
Указывает на то, что действия аналитики выполнялись в фоновом режиме. | |
Условный поток, результат которого равен true. Введение в условные потоки см. в разделе «Настройка потоков» . Обратите внимание, что некоторые условия генерируются Edge. Например, ниже приведено выражение, которое Edge использует для проверки наличия ошибки в ProxyEndpoint: ((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW)) | |
Условный поток, результат которого равен false. Введение в условные потоки см. в разделе «Настройка потоков» . Обратите внимание, что некоторые условия генерируются Edge. Например, ниже приведено выражение, которое Edge использует для проверки наличия ошибки в TargetEndpoint: (((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START))) | |
| Политики. Каждый тип политики имеет уникальный значок. Этот значок относится к политике AssignMessage. Эти значки позволяют увидеть, где политики выполняются в правильном порядке и были ли они успешными или нет. Вы можете щелкнуть значок политики, чтобы увидеть результаты ее выполнения и узнать, соответствуют ли они ожиданиям или нет. Например, вы можете увидеть, было ли сообщение преобразовано правильно или оно кэшируется. Правильное выполнение политик четко обозначается галочками. В случае ошибки на значке отображается красный восклицательный знак. Совет: обращайте внимание на всплывающую подсказку или временную шкалу, чтобы проверить, не затягивается ли рассмотрение какой-либо политики дольше, чем ожидалось. |
![]() | Эта ошибка появляется, когда целевым бэкэндом является приложение Node.js. См. Обзор Node.js в Apigee Edge . |
![]() | Целевой бэкэнд, вызываемый API-прокси. |
![]() | Временная шкала показывает, сколько времени (в миллисекундах) потребовалось для завершения обработки. Сравнение прошедших временных отрезков помогает выявить политики, выполнение которых занимает больше всего времени и которые замедляют вызовы API. |
| Символ эпсилон обозначает временной промежуток меньше миллисекунды. | |
Отключено. Отображается на значке политики, когда политика отключена. Политику можно отключить с помощью общедоступного API. См. справочник по настройке прокси-сервера API . | |
| Ошибка. Отображается на значке политики, когда условие шага политики принимает значение false (см. Переменные и условия потока ), или на значке политики RaiseFault всякий раз, когда выполняется политика RaiseFault. | |
| Пропущено. Отображается на значке политики, если политика не была выполнена, поскольку условие шага оказалось ложным. Дополнительную информацию см. в разделе «Переменные и условия потока» . |
Понимание деталей фазы
Раздел «Подробности этапа» инструмента предоставляет много информации о состоянии вашего прокси-сервера на каждом этапе обработки. Вот некоторые из деталей, представленных в разделе «Подробности этапа». Щелкните любой значок в инструменте трассировки, чтобы просмотреть подробности для выбранного этапа, или используйте кнопки «Далее» / «Назад» , чтобы перейти от одного этапа к другому.
| Детали этапа | Описание |
| Прокси-конечная точка | Указывает, какой поток ProxyEndpoint был выбран для выполнения. API-прокси может иметь несколько именованных конечных точек прокси. |
| Переменные | Отображает список переменных потока, которые были считаны и которым было присвоено значение политикой. См. также раздел «Управление состоянием прокси-сервера с помощью переменных потока» . Примечание :
|
| Заголовки запроса | Отображает заголовки HTTP-запроса. |
| Запрос содержимого | Отображает тело HTTP-запроса. |
| Характеристики | Свойства представляют собой внутреннее состояние API-прокси. По умолчанию они не отображаются. |
| Целевая конечная точка | Указывает, какой целевой объект (TargetEndpoint) был выбран для выполнения. |
| Заголовки ответа | Отображает заголовки HTTP-ответа. |
| Содержание ответа | Отображает тело HTTP-ответа. |
| PostClientFlow | Отображает информацию о PostClientFlow, который выполняется после того, как запрос возвращается в запрашивающее клиентское приложение. К PostClientFlow можно прикрепить только политики MessageLogging. В настоящее время PostClientFlow используется в основном для измерения временного интервала между начальной и конечной метками времени ответного сообщения. |
Уточнение захвата сообщений с помощью фильтров.
Вы можете отфильтровать запросы, отображаемые в инструменте трассировки, указав значения заголовков и/или параметров запроса. Фильтры позволяют нацелиться на конкретные вызовы, которые могут вызывать проблемы. Например, вам может потребоваться сосредоточиться на запросах с определенным содержимым или запросах, поступающих от определенных партнеров или приложений. Вы можете фильтровать по следующим параметрам:
- HTTP-заголовки — ограничьте трассировку только вызовами, содержащими определенный заголовок. Это хороший способ помочь в устранении неполадок. Вы можете отправить заголовок разработчику вашего приложения и попросить его включить его в вызов, вызывающий проблемы. Тогда Apigee Edge будет записывать только вызовы с этим конкретным заголовком, чтобы вы могли изучить результаты.
- Параметры запроса — будут записываться только вызовы, содержащие определенное значение параметра.
Что нужно знать о функции фильтра
- После указания параметров фильтра в полях фильтра необходимо перезапустить сеанс трассировки.
- Параметры фильтра объединяются с помощью логической операции И. Для успешного совпадения все указанные пары «имя/значение» запроса и/или заголовка должны присутствовать в запросе.
- В инструменте «Фильтры» сопоставление с шаблонами не поддерживается.
- Параметры и значения фильтра чувствительны к регистру.
Как создать фильтр трассировки
- Если запущена трассировочная сессия, остановите ее, нажав кнопку «Остановить трассировочную сессию» .
- Чтобы развернуть поле «Фильтры», нажмите «Фильтры» в верхнем левом углу инструмента «Трассировка».

- В поле «Фильтры» укажите значения параметров запроса и/или заголовков, по которым вы хотите выполнить фильтрацию. В этом примере мы указываем два параметра запроса для фильтрации. Оба параметра должны присутствовать в запросе для успешного совпадения.

- Запустите сеанс трассировки.
- Вызывайте свои API. Только запросы, содержащие все указанные заголовки и/или параметры запроса, приводят к успешному совпадению.

В приведенном выше примере этот вызов API отобразится в трассировке:
http://docs-test.apigee.net/cats?name=Penny&breed=Calico
Но этого не произойдет:
http://docs-test.apigee.net/cats?name=Penny
Отладка с помощью трассировки
Функция трассировки позволяет увидеть множество внутренних деталей работы API-прокси. Например:
- Вы можете с первого взгляда увидеть, какие политики выполняются корректно, а какие — с ошибкой.
- Допустим, вы заметили на одной из панелей аналитики, что производительность одного из ваших API снизилась необычным образом. Теперь вы можете использовать трассировку (Trace), чтобы определить, где находится узкое место. Трассировка показывает время в миллисекундах, необходимое для завершения каждого этапа обработки. Если вы обнаружите, что какой-то этап занимает слишком много времени, вы можете принять корректирующие меры.
- Просматривая детали этапа, вы можете проверить заголовки, отправляемые на серверную часть, просмотреть переменные, установленные политиками, и так далее.
- Проверив базовый путь, вы можете убедиться, что политика направляет сообщение на правильный сервер.
Выбор параметров просмотра
Выберите параметры просмотра для сеанса трассировки.



| Вариант | Описание |
| Показать правила для инвалидов | Отобразить все отключенные политики. Политику можно отключить с помощью общедоступного API. См. справочник по настройке прокси-сервера API . |
| Показать пропущенные фазы | Укажите все пропущенные этапы. Пропущенный этап возникает, когда политика не была выполнена, поскольку условие шага оказалось ложным. Дополнительную информацию см. в разделе «Переменные и условия потока» . |
| Показать все FlowInfos | Представляют переходы внутри сегмента потока. |
| Автоматическое сравнение выбранных фаз | Сравнивает выбранную фазу с предыдущей. Отключите эту функцию, чтобы отображалась только выбранная фаза. |
| Показать переменные | Показать или скрыть переменные, которые были считаны и/или которым было присвоено значение. |
| Показать свойства | Свойства отражают внутреннее состояние API-прокси. (По умолчанию скрыты.) |
Загрузка результатов трассировки
Вы можете загрузить XML-файл с необработанными результатами трассировки для просмотра и поиска в автономном режиме в текстовом редакторе. Файл содержит полную информацию о сеансе прослушивания, включая содержимое всех заголовков, переменных и политик.
Для загрузки нажмите «Загрузить сессию трассировки» .
Отображение запросов как curl
После отслеживания вызова API к целевому серверу вы можете просмотреть запрос как команду curl. Это особенно полезно для отладки по нескольким причинам:
- API-прокси может изменять запрос, поэтому полезно посмотреть, чем отличается запрос от прокси к целевому серверу от исходного запроса. Команда curl отображает измененный запрос.
- Для сообщений большого объема curl позволяет просматривать HTTP-заголовки и содержимое сообщения в одном месте. (В настоящее время существует ограничение примерно в 1000 символов. Совет по преодолению этого ограничения можно найти в этом сообщении на форуме сообщества .)
В целях безопасности функция curl маскирует заголовок HTTP Authorization.
Чтобы в трассировке отображались запросы в формате curl после выполнения вызова API, выберите этап «Запрос отправлен на целевой сервер» на диаграмме карты транзакций, а затем нажмите кнопку « Показать curl» в столбце «Запрос отправлен на целевой сервер» на панели сведений об этапе.

Поддержка Apigee в использовании Trace
По умолчанию Apigee Edge позволяет службе поддержки Apigee использовать инструмент трассировки на ваших прокси-серверах API для оказания поддержки. Вы можете отключить эту опцию в любое время. Однако отключение этой опции может ограничить возможности службы поддержки Apigee по оказанию вам поддержки.
Чтобы запретить службе поддержки Apigee использовать инструмент Trace:
- Войдите на https://apigee.com/edge .
- Выберите «Администратор» > «Конфиденциальность и безопасность» на левой панели навигации.
- Щелкните переключатель Включить поддержку Apigee для трассировки , чтобы отключить использование инструмента трассировки службой поддержки Apigee.



