Как использовать инструмент трассировки

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Что такое инструмент "Трассировка"

Инструмент Trace предназначен для устранения неполадок и мониторинга прокси API, работающих в Apigee Edge. Трассировка позволяет изучать детали каждого шага в потоке прокси-сервера API.

Посмотрите видео о том, как пользоваться инструментом Trace.

Как использовать Trace

Trace прост в использовании. Вы запускаете сеанс трассировки, затем отправляете вызов API на платформу Edge и читаете результаты.

  1. Перейдите на страницу прокси API, как описано ниже.

    Edge

    Чтобы перейти на страницу прокси API в интерфейсе Edge:

    1. Войдите в аккаунт на сайте apigee.com/edge.
    2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).

    Новый интерфейс Edge (частное облако)

    Чтобы перейти на страницу прокси API в новом интерфейсе Edge:

    1. Войдите в интерфейс New Edge по адресу http://host:3001/edge, где host – это IP-адрес или DNS-имя хоста, на котором запущен интерфейс New Edge.
    2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
  2. Выберите прокси-сервер API на странице API Proxies (Прокси API).
  3. Убедитесь, что API, который вы хотите отследить, развернут.
  4. Нажмите Трассировка, чтобы перейти к инструменту трассировки.
  5. В раскрывающемся меню Развертывание для трассировки выберите среду развертывания и версию прокси, которые вы хотите отслеживать.
  6. Нажмите Начать сеанс трассировки. Когда сеанс трассировки активен, прокси-сервер API записывает сведения о каждом шаге в конвейере обработки. Во время сеанса трассировки сообщения и контекстные данные захватываются из трафика в реальном времени.

  7. Если через ваш прокси-сервер не проходит трафик, просто отправьте запрос к API. Для отправки запроса можно использовать любой удобный для вас инструмент, например curl, Postman или любой другой. Вы также можете отправить запрос прямо из инструмента трассировки. Просто введите URL и нажмите Отправить. Примечание. С помощью инструмента "Трассировка" можно отправлять только GET-запросы, но не POST-запросы.

    Примечание. Один сеанс трассировки может поддерживать 10 транзакций запроса/ответа на Message Processor через выбранный прокси-сервер API. В облаке Edge с двумя процессорами сообщений, обрабатывающими трафик, поддерживается 20 транзакций запроса/ответа. Сеанс трассировки автоматически завершается через 10 минут, если вы не остановите его вручную.
  8. Когда вы соберете достаточное количество запросов, нажмите Stop Trace Session (Остановить сеанс трассировки).
  9. В меню слева появится список записанных транзакций запросов и ответов. Нажмите на транзакцию, чтобы посмотреть подробные результаты.

Как читать трассировку

Инструмент трассировки состоит из двух основных частей: карты транзакций и сведений об этапах.

  • На карте транзакций значками отмечены все важные этапы транзакции прокси-сервера API, в том числе выполнение правил, условные шаги и переходы. Наведите указатель мыши на значок, чтобы посмотреть сводную информацию. Этапы запроса отображаются в верхней части карты транзакции, а этапы ответа – в нижней.
  • В разделе phase details инструмента перечислены сведения о внутренней обработке прокси, в том числе заданные или прочитанные переменные, заголовки запросов и ответов и многое другое. Нажмите на любой значок, чтобы посмотреть подробную информацию об этапе.

Ниже показана карта инструмента трассировки с основными сегментами обработки прокси-сервером:

Карта транзакций инструмента отслеживания

Легенда карты транзакций

В таблице ниже описано, что означают значки, которые вы увидите на карте транзакций. Эти значки обозначают основные этапы обработки в процессе работы прокси-сервера.

Значки на карте транзакций

Клиентское приложение, которое отправляет запрос в ProxyEndpoint прокси-сервера API.
Круги обозначают переходные конечные точки в потоке прокси-сервера. Они присутствуют, когда клиент отправляет запрос, когда запрос поступает в целевой сервис, когда целевой сервис отправляет ответ и когда ответ поступает клиенту.

Высокие столбцы обозначают начало сегмента потока в потоке прокси API. Сегменты потока: запрос ProxyEndpoint, запрос TargetEndpoint, ответ TargetEndpoint и ответ ProxyEndpoint. Сегмент включает PreFlow, Conditional Flows и PostFlow.

Подробнее о настройке потоков…

Указывает, что действия Аналитики выполнялись в фоновом режиме.

Условный поток, который оценивается как истинный. Подробнее о настройке процессов…

Обратите внимание, что некоторые условия создаются Edge. Например, следующее выражение используется в Edge, чтобы проверить, произошла ли ошибка в ProxyEndpoint:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))

Условный процесс, который оценивается как ложный. Общие сведения о процессах с условиями можно найти в разделе Настройка процессов.

Обратите внимание, что некоторые условия создаются 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…

Ошибка. Появляется на значке правила, когда условие шага правила оценивается как ложное (см. Переменные и условия потока), или на значке правила RaiseFault при каждом выполнении этого правила.
Пропущено. Появляется на значке правила, если оно не было выполнено, поскольку условие шага имеет значение false. Подробнее о переменных и условиях…

Подробная информация об этапах

В разделе Сведения об этапе инструмента можно найти много информации о состоянии прокси-сервера на каждом этапе обработки. Ниже приведены некоторые сведения, которые можно найти в разделе "Сведения об этапе". Нажмите на любой значок в инструменте трассировки, чтобы посмотреть подробную информацию о выбранном шаге, или используйте кнопки Далее/Назад для перехода между шагами.

Сведения об этапе Описание
Конечная точка прокси-сервера Указывает, какой поток ProxyEndpoint был выбран для выполнения. У прокси-сервера API может быть несколько именованных конечных точек прокси.
Переменные

Список переменных потока, которые были прочитаны и которым было присвоено значение правилом. Также ознакомьтесь со статьей Управление состоянием прокси-сервера с помощью переменных потока.

Примечания

  • Знак равенства (=) указывает на значение, присвоенное переменной.
  • Перечеркнутый знак равенства (≠) означает, что переменной не удалось присвоить значение, поскольку она доступна только для чтения или при выполнении правила произошла ошибка.
  • Если поле пустое, значит значение переменной было прочитано.
Заголовки запроса Содержит список заголовков HTTP-запросов.
Запрос контента Показывает тело HTTP-запроса.
Свойства Свойства представляют внутреннее состояние прокси-сервера API. По умолчанию они не показываются.
Целевая конечная точка Указывает, какой TargetEndpoint был выбран для выполнения.
Заголовки ответов Содержит список заголовков HTTP-ответов.
Контент ответа Показывает тело HTTP-ответа.
PostClientFlow Содержит информацию о PostClientFlow, который выполняется после того, как запрос возвращается в клиентское приложение. К PostClientFlow можно прикрепить только правила MessageLogging. В настоящее время PostClientFlow используется в основном для измерения временного интервала между временными метками начала и конца сообщения с ответом.

Как уточнить сбор сообщений с помощью фильтров

Вы можете отфильтровать запросы, которые будут показываться в инструменте трассировки, указав значения заголовков и/или параметров запроса. Фильтры позволяют настроить таргетинг на определенные звонки, которые могут вызывать проблемы. Например, вам может понадобиться найти запросы с определенным контентом или запросы, отправленные определенными партнерами или приложениями. Вы можете фильтровать данные по следующим параметрам:

  • HTTP-заголовки. Ограничьте трассировку только вызовами, содержащими определенный заголовок. Это поможет вам устранить неполадки. Вы можете отправить заголовок разработчику приложения и попросить его добавить его в вызов, который вызывает проблемы. Тогда Apigee Edge будет записывать только вызовы с этим заголовком, чтобы вы могли изучить результаты.
  • Параметры запроса. Будут записываться только звонки с определенным значением параметра.

Что нужно знать о фильтрах

  • После того как вы укажете параметры фильтра в полях фильтра, необходимо перезапустить сеанс трассировки.
  • Параметры фильтра объединяются с помощью оператора AND. Чтобы запрос был успешно обработан, в нем должны присутствовать все указанные пары "запрос" и/или "заголовок/значение".
  • Сопоставление с образцом не поддерживается в инструменте "Фильтры".
  • В параметрах и значениях фильтров учитывается регистр.

Как создать фильтр трассировки

  1. Если сеанс трассировки запущен, остановите его, нажав Остановить сеанс трассировки.
  2. Нажмите Фильтры в левом верхнем углу инструмента "Трассировка", чтобы развернуть поле "Фильтры".

    На боковой панели инструмента "Трассировка" обведена надпись "Фильтры".
  3. В поле "Фильтры" укажите параметр запроса и/или значения заголовков, которые нужно отфильтровать. В этом примере мы задаем два параметра запроса для фильтрации. Для успешного сопоставления оба параметра должны присутствовать в запросе.

    В инструменте трассировки в разделе "Фильтры" в разделе "Параметр запроса" заданы два примера названий и значений.
  4. Запустите сеанс трассировки.
  5. Вызовите 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.
Показать пропущенные этапы Показать пропущенные этапы. Пропущенный этап возникает, когда правила не выполняются, поскольку условие шага оценивается как ложное. Подробнее о переменных и условиях…
Показать все FlowInfo Представляют переходы в сегменте потока.
Автоматическое сравнение выбранного этапа Сравнивает выбранный этап с предыдущим. Отключите этот параметр, чтобы видеть только выбранный этап.
Показать переменные Показывать или скрывать переменные, которые были прочитаны и/или которым было присвоено значение.
Показать свойства Свойства представляют внутреннее состояние прокси-сервера API. (По умолчанию скрыто.)

Как скачать результаты трассировки

Вы можете скачать XML-файл с необработанными результатами трассировки, чтобы просматривать и искать их в текстовом редакторе в офлайн-режиме. В файле содержатся полные сведения о сеансе прослушивания, включая содержимое всех заголовков, переменных и правил.

Чтобы скачать сеанс трассировки, нажмите Скачать сеанс трассировки.

Как посмотреть запросы в виде команд curl

После того как вы отследите вызов API, сделанный на целевой сервер, вы сможете посмотреть запрос в виде команды curl. Это особенно полезно для отладки по нескольким причинам:

  • Прокси-сервер API может изменить запрос, поэтому полезно знать, чем запрос от прокси-сервера к целевому серверу отличается от исходного запроса. Команда curl представляет измененный запрос.
  • Для больших полезных нагрузок curl позволяет просматривать HTTP-заголовки и содержимое сообщения в одном месте. Сейчас длина описания ограничена примерно 1000 символами. Совет о том, как обойти это ограничение, можно найти в записи на форуме.

В целях безопасности функция curl маскирует заголовок авторизации HTTP.

Чтобы посмотреть запросы в виде curl после того, как вызов API будет выполнен в трассировке, выберите этап "Запрос, отправленный на целевой сервер" на диаграмме "Карта транзакций" и нажмите кнопку Показать curl в столбце "Запрос, отправленный на целевой сервер" на панели подробностей этапа.

Аннотации к изображению указывают на кнопку "Показать Curl" и один из кругов на диаграмме "Карта транзакций".

Использование трассировки службой поддержки Apigee

По умолчанию Apigee Edge позволяет службе поддержки Apigee использовать инструмент трассировки на ваших прокси-серверах API для оказания поддержки. Вы можете отключить эту опцию в любое время. Однако отключение этой опции может ограничить возможности службы поддержки Apigee по оказанию вам поддержки.

Чтобы запретить службе поддержки Apigee использовать инструмент Trace:

  1. Войдите на https://apigee.com/edge .
  2. Выберите «Администратор» > «Конфиденциальность и безопасность» на левой панели навигации.
  3. Щелкните переключатель Включить поддержку Apigee для трассировки , чтобы отключить использование инструмента трассировки службой поддержки Apigee.