Service flow фильтры

Материал из Документация Ключ-АСТРОМ

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

Функции фильтрации помогают ориентироваться в сложной архитектуре сервисов вашего приложения, позволяя найти, образно говоря, иголку в стоге сена. Ключ-АСТРОМ Service Flow позволяет анализировать подмножества запросов, инициированных определенным сервисом.

Общая процедура фильтрации потока сервисных данных выглядит следующим образом:

  1. Перейдите в раздел Сервисы.
  2. Выберите сервис, которую хотите проанализировать.
  3. На странице обзора сервиса в разделе Топология выберите Поток обслуживания.
  4. В разделе Поток сервисов выберите вызываемый сервис, чтобы определить последовательность сервисов, которые вы хотите проанализировать.
    Панель справа откроется непосредственно на вкладке Проходящие транзакции.
  5. Чтобы создать фильтр для выбранной последовательности сервисов, выполните одно из следующих действий:
    • В верхней части экрана выберите пункт Фильтр потока сервисов.
    • Выберите Фильтровать запросы над выбранным сервисом.
  6. Добавьте дополнительные критерии к фильтру:
    1. В фильтре выберите сервис, к которому вы хотите применить дополнительную фильтрацию.
    2. В списке Фильтр по выберите критерий.
    3. Укажите пороговое значение или правила сопоставления для данного критерия.
    4. Выберите Применить.
    5. При необходимости добавьте в фильтр дополнительные критерии.
    6. После завершения нажмите Применить.

Более подробное объяснение приведено ниже.

Фильтрация запросов на основе определенных последовательностей вызовов

Фильтры последовательности вызовов доступны в большинстве представлений анализа сервисов, но наиболее очевидны они в представлении потока сервиса. Как видно из приведенного ниже примера, только 5,9% запросов к сервису easyTravel Customer Frontend также вызывали сам сервис JourneyService. Далее, 99% из них вызывали easyTravel-Business сервис базы данных.

Imageа49.png

Чтобы сосредоточить внимание Service Flow на этих вызовах

  1. Перейдите в раздел Сервисы.
  2. Выберите сервис, которую хотите проанализировать.
  3. На странице обзора сервиса в разделе Топология выберите Поток обслуживания.
  4. В разделе Поток сервисов выберите вызываемый сервис, чтобы определить последовательность сервисов, которые вы хотите проанализировать. В нашем примере это сервис easyTravel-Business.
    Вкладка Проходящие транзакции отображается в правой части страницы.
  5. Чтобы создать фильтр для выбранной последовательности сервисов, выполните одно из следующих действий:
    • В верхней части экрана выберите пункт Фильтр потока сервисов.
    • Выберите Фильтровать запросы над выбранным сервисом.

Вернемся к нашему примеру. Был создан фильтр, позволяющий сосредоточить анализ только на тех запросах от сервиса easyTravel Customer Frontend, которые обращаются к сервису JourneyService, а затем к базе данных easyTravel-Business.

Обратите внимание, что количество анализируемых запросов easyTravel Customer Frontend сократилось с 156 тыс. до 8,73 тыс., поскольку теперь учитывается только часть вызовов. Следовательно, среднее время ответа теперь отражает только те запросы, которые вызывают easyTravel Customer FrontendJourneyService.

Теперь внимательно взгляните на узел JourneyService. Обратите внимание, что 35% времени ответа сервиса easyTravel Customer Frontend приходится на JourneyService. Схема работы сервиса также выявляет нечто неожиданное — некоторые из выбранных запросов запускают RMI server.

Imageа50.png

Многогранные фильтры

Каждый фильтр может содержать несколько последовательностей вызовов. Это означает, что вы можете создавать сложные, многогранные фильтры последовательностей вызовов, основанные на ваших уникальных потребностях в анализе сервисов. Service Flow будет фокусироваться только на вызовах, соответствующих всем критериям.

Чтобы добавить новые последовательности к существующему фильтру

  1. Пока текущий фильтр активен, выберите дополнительную последовательность вызовов в разделе Поток сервиса.
  2. На вкладке Проходящие транзакции в правой панели выберите Фильтр потока сервиса.

В приведенном ниже примере критерии фильтрации расширены за счет вызовов сервиса easyTravel Customer Frontend, которые, в свою очередь, обращаются к сервису RMI server, а затем к базе данных easyTravel-Business. Теперь количество анализируемых запросов easyTravel Customer Frontend сократилось до 528. Кроме того, на сервис JourneyService теперь приходится 39% времени ответа.

Imageа51.png

Расширьте возможности фильтров, добавив дополнительные критерии

После того, как вы сузите круг запросов, исходя из задействованных сервисов, вы можете добавить дополнительные критерии в фильтр.

  1. В фильтре выберите сервис, к которому вы хотите применить дополнительную фильтрацию.
  2. В списке Фильтр по выберите критерий.
  3. Укажите пороговое значение или правила сопоставления для данного критерия.
  4. Выберите Применить.
  5. При необходимости добавьте в фильтр дополнительные критерии.
  6. После завершения нажмите Применить.

Imageа52.png

В нашем примере мы применили пороговое значение времени ответа в 200 мс . Теперь отображаются только вызовы JourneyService с временем ответа более 200 мс, и их всего 6. Мы очень близки к тому, чтобы найти иголку в стоге сена!

Imageа53.png

Анализ последовательностей звонков с разных сторон

Истинная эффективность фильтрации последовательности вызовов становится очевидной, когда вы начинаете анализ проблемной последовательности вызовов. В приведенном выше примере Service Flow показывает, что 40% времени ответа сервиса easyTravel Customer Frontend приходится на JourneyService.

Следующий логический шаг — анализ времени отклика сервиса JourneyService в контексте выбранной последовательности вызовов. Для этого выберите соответствующий пункт JourneyService в правой панели Service flow. В правой панели отображаются все параметры анализа, которые можно выполнить для выбранного сервиса — все в контексте отфильтрованной последовательности вызовов. Все фильтры, созданные вами в разделе Поток сервиса, также будут применены к дополнительному анализу.