Современная ИТ-инфраструктура требует комплексного подхода к мониторингу и тестированию производительности приложений. Все больше и больше компаний по всему миру используют сочетание управления производительностью приложений (APM) и тестирования производительности для реализации успешных процессов DevOps и поддержки общего состояния своей ИТ-среды.

В то время как платформы APM, такие как NewRelic и Dynatrace, часто используются для отслеживания и анализа ключевых показателей производительности серверов приложений, баз данных и других компонентов ИТ-инфраструктуры, инструменты нагрузочного тестирования, такие как LoadView, являются отличным решением в рамках предварительного и последующего тестирования производительности. Интеграция нагрузочного тестирования в жизненный цикл веб-разработки дает командам DevOps всестороннюю информацию об изменениях в производительности веб-служб и приложений при значительной пользовательской нагрузке, а также помогает выявить узкие места в инфраструктуре поддержки. В этой статье мы проведем вас через интеграцию Dynatrace и LoadView, чтобы продемонстрировать основные этапы настройки интеграции APM и инструмента нагрузочного тестирования.

Обзор интеграции Dynatrace и Loadview

Основные принципы интеграции платформы APM с инструментами нагрузочного тестирования описаны в статье Интеграция инструментов Dynatrace и нагрузочного тестирования на официальном сайте Dynatrace. Короче говоря, при выполнении нагрузочного теста инструмент нагрузочного тестирования генерирует тысячи HTTP-запросов к целевому веб-сайту или веб-приложению. Вы можете пометить тестовые запросы определенными атрибутами HTTP и отфильтровать трафик нагрузочного теста по этим атрибутам в Dynatrace.

Мы можем разбить процесс интеграции LoadView & Dynatrace на следующие шаги:

  1. Настройка правил извлечения для пользовательских HTTP-заголовков в Dynatrace.
  2. Создание сценария нагрузочного теста веб-приложения с помощью LoadView.
  3. Пометка запросов нагрузочного теста дополнительными заголовками HTTP для фильтрации данных мониторинга по определенным тегам в Dynatrace.
  4. Выполнение нагрузочного теста в LoadView.
  5. Применение фильтра и получение соответствующих запросов в Dynatrace для дальнейшего детализационного анализа.

Пошаговое руководство по интеграции Loadview & Dynatrace

Начнем с настройки правил извлечения для пользовательских HTTP-заголовков.

В Dynatrace перейдите в раздел Настройки > Атрибуты запроса мониторинга > служб на стороне сервера и установите правило извлечения для нового атрибута запроса “loadtest” и параметра заголовка “x-dynatrace“, как описано на официальном сайте Dynatrace.

Кроме того, пользовательские заголовки HTTP можно фильтровать данные мониторинга по заголовкам User-Agent .

По умолчанию все нагрузочные тесты веб-приложений и веб-сайтов, выполняемые LoadView в реальных браузерах, содержат суффикс DMBrowser в заголовке запроса User-Agent:

GET /?gws_rd=ssl HTTP/1.1
Host: www.google.com
Connection: keep-alive
...

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36DMBrowser/2.1 (UV)

Таким образом, можно использовать атрибут DMBrowser в правиле извлечения Dynatrace для фильтрации запросов из LoadView.

На следующем этапе нам нужно создать нагрузочный тест с помеченными тестовыми запросами. Создадим базовый сценарий нагрузочного теста веб-приложения в LoadView. Для записи скрипта мы используем инструмент сценариев EveryStep.

После записи скрипта добавим в него пользовательский заголовок. Чтобы пометить запросы LoadView пользовательским заголовком, мы используем функцию Set Request Header , доступную в контекстном меню скрипта (Network > Set Request Header). Полное описание метода можно найти в статье Добавление пользовательского заголовка в сценарий EveryStep нашей базы знаний.

Добавление пользовательского заголовка

Далее мы указываем следующую пару ключ-значение:

  • КЛАВИША ЗАГОЛОВКА : x-dynatrace
  • ЗНАЧЕНИЕ ЗАГОЛОВКА : нагрузочный тест

Заголовок запроса на интеграцию Dynatrace

Теперь мы все готовы продолжить сценарий нагрузочного теста, как описано в разделе Как настроить LoadView для нагрузочного и стресс-тестирования , и можем запустить тест в LoadView. Запросы LoadView будут помечены в Dynatrace с указанным атрибутом request для дальнейшего анализа.