-
Notifications
You must be signed in to change notification settings - Fork 1
Модули
Модули генерации нагрузки:
Прочие модули: *
Модуль получает данные от агрегатора и передает их объектам-критериям автостопа. При обнаружении объектом-критерием необходимости остановить тест, он делает это.
Секция INI-файла: [autostop]
Опции:
-
autostop - список критериев автостопа, разделенных пробелами. Формат критериев таков:
тип(параметры)
Доступные типы критериев:
-
time - остановить тест, если среднее время ответа превышает заданный порог в течение заданного времени, код выхода 21. Например:
time(1s500ms, 30s) time(50,15)
-
http - остановить тест, если число кодов HTTP, соответствующих маске, более заданного абсолютного или относительного порога, код выхода 22. Примеры:
http(404,10,15) http(5xx, 10%, 1m)
-
net - аналогично HTTP-кодам, но для сетевых кодов ответа, код выхода 23. допустима маска
xx
, означающая "все ненулевые" -
quantile - остановить тест, если выбранный процентиль выше определенного уровня таймингов в течение N секунд. Список допустимых квантилей: 25, 50, 75, 80, 90, 95, 98, 99, 100. Например:
quantile (95,100ms,10s)
-
instances - тип добавляется при подключении модуля Phantom. Тест останавливается, если число активных инстансов выше абсолютного или относительного порога, код выхода 24. Например:
instances(80%, 30) instances(50,1m)
-
total_time — остановить тест, если N% ответов превышает порог времени ответа в течение заданного интервала времени. От time отличается тем, что аккумулирует информацию, это означает что в заданном интервале могут быть секунды, которые не удовлетворяют критерию, но весь интервал в целом удовлетворяет заданным условиям, код выхода 25. Например:
total_time(100ms,70%,3s)
-
total_http — остановить тест, если N% (или абсолютное значение) ответов пришли с кодом по заданной маске в течение заданного времени. Так же, использует аккумуляцию, код выхода 26.
total_http(5xx,10%,10s) total_http(3xx,40%,10s)
-
total_net — остановить тест, если N% (или абсолютное значение) ответов пришли с кодом по заданной маске в течение заданного времени. Аккумулирующий критерий, код выхода 27. Примеры:
total_net(79,10%,10s) total_net(11x,50%,15s)
-
negative_http — остановить тест если более N% кодов ответов не подходят под заданную маску. Например, если у нас упал backend и front начал кидать 3xx вместо 2xx, можно написать следующий критерий, код выхода 28:
negative_http(2xx,10%,10s)
. В этом примере стрельба остановится, если количество _НЕ_200ок превысит 10%. -
negative_net — остановить тест если более N% кодов ответов не подходят под заданную маску. Например, если обстреливаемое приложение стало некорретно отвечать на уровне TCP (т.е. стали лететь ошибки Protocol Error 71, а иногда ловим 104/110), то можно написать следующий критерий, код выхода 29:
negative_net(0,10%,10s)
. В этом примере стрельба остановится, если доля всех сетевых ошибок превысит 10% за последние 10 секунд. -
http_trend — автостоп, который следит за трендом ответов с заданной маской. Например, сервис корретно отвечает на 300rps, но дальше при повышении нагрузки до 350rps количество ответов начало снижаться. Тогда можем написать критерий
http_trend(2xx,10s)
. Если тренд двухсоток за последние 10 секунд начал снижаться с учетом погрешности измерения, то останавливать тест. Необходим чтобы для каждого сервиса и его конфигурации не подбирать границы времен ответа для определния момента разладки. Код выхода 30. -
metric_lower и metric_higher - срабатывают если значение метрики мониторинга ниже/выше порога в течение заданного времени, коды выхода 31 и 32. Пример:
metric_lower(127.0.0.1,Memory_free,500,10)
. Обратите внимание, что имена метрик (кроме кастомных) пишутся не через пробел, а через подчеркивание. В именах хостов можно использовать маски а-ля имена файлов (Пример: target-*.yandex.ru).
Отображает информацию о ходе теста в текстовой консоли
Секция INI-файла: [console]
Опции:
- short_only - отображать сокращенную информацию по одной строке в секунду вместо полноэкранной, 1 - сокращенная, 0 - полноэкранная, по умолчанию 0
- info_panel_width - относительная ширина правой панели в процентах, по умолчанию 33
- disable_all_colors - отключить цветную раскраску, 0/1, по умолчанию 0
-
disable_colors - список цветов из раскраски, которые будут отключены, список, разделенный пробелами. Пример:
WHITE GREEN RED CYAN MAGENTA YELLOW
Модуль отвечает за агрегацию получаемых от модулей генерации нагрузки данных и передачу агрегированных данных объектам-потребителям. Например, модуль консольного экрана - яркий представитель потребителей агрегированных данных.
Секция INI-файла: [aggregator]
Опции:
-
time_periods - интервалы в миллисекундах, по которым будет вестись округление результатов, разделители списка - пробелы. По умолчанию:
1ms 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100 150 200 250 300 350 400 450 500 600 650 700 750 800 850 900 950 1s 1500 2s 2500 3s 3500 4s 4500 5s 5500 6s 6500 7s 7500 8s 8500 9s 9500 10s 11s
Модуль выполняет shell-скрипты (т.н. хуки) на разных этапах работы, это позволяет запускать/останавливать сервис непосредственно перед тестом. Каждый хук считается успешным если имеет код выхода 0, в противном случае тест будет остановлен. Вывод stdout хука будет записан в DEBUG-лог, вывод stderr будет распечатан как сообщения WARNING.
Секция INI-файла: [shellexec]
Опции:
- prepare - выполняется при подготовке теста
- start - выполняется на этапе старта теста
- poll - выполняется при ежесекундном опросе модулей на предмет завершенности теста
- end - выполняется при остановке теста
- postprocess - выполняется на этапе пост-обработки результатов
Модуль использования генератора нагрузки JMeter.
Секция INI-файла: [jmeter]
Опции:
- jmx - файл тест-плана для запуска
- args - дополнительные аргументы командной строки запуска JMeter
-
jmeter_path - путь к JMeter, позволяет запустить альтернативную инсталляцию, по умолчанию:
jmeter
Артефакты: - <оригинальный jmx> - исходный файл тест-плана
- modified*.jmx_ - модифицированный тест-план, после добавления в него блока записи результатов
- jmeter*.jtl_ - файл результатов JMeter
- jmeter*.log_ - файл лога JMeter
Модуль использования генератора нагрузки Apache Benchmark. Утилита ab имеет специфику того, что результаты в файл сбрасывает только в самом конце теста. Из-за этого в Яндекс.Танке приходится весь тест ждать "вслепую" и лишь по завершении теста все данные будут обработаны разом.
Секция INI-файла: [ab]
Опции:
-
url - запрашиваемый URL, по умолчанию:
http:_localhost/
- requests - общее число запросов, которые необходимо выполнить, по умолчанию: 100
- concurrency - число параллельных потоков, которые будут задействованы, по умолчанию: 1
- options - дополнительные опции командной строки для утилиты ab
Артефакты:
- ab*.log_ - лог запросов с таймингами
Модуль отображает небольшие советы по использованию инструмента в полноэкранной консоли. Если у вас есть дельные советы и хитрости, которые можно добавить в tips&tricks - сообщайте разработчикам
Секция INI-файла: [tips]
Опции:
- disable - отключить отображение советов, 1 - отключить, 0 - не отключать, по умолчанию 0
Модуль запускает локальный веб-сервер, умеющий показывать графики онлайн-теста.
Секция INI-файла: [web]
Опции:
- port - локальный порт, на котором будет запущен сервер. По умолчанию: 8080
- interval - интервал в секундах, который будет отображаться на графике. По умолчанию: 1 минута
- redirect - адрес, на который перенаправлять браузер после завершения теста
- manual_stop - флаг 0/1, при установке в 1 перед остановкой веб-сервера будет запрошено нажатие клавиши в консоли
Модуль проверяет перед тестом и в процессе теста, не кончаются ли память и дисковое пространство. Если кончаются - тест прерывается.
Секция INI-файла: [rcheck]
Опции:
- interval - периодичность, с которой будут проверяться ресурсы в процессе теста. По умолчанию: 10 секунд
- disk_limit - размер в МБ минимального свободного места на диске, по умолчанию: 2ГБ
- mem_limit - размер в МБ минимальной свободной памяти, по умолчанию: 512МБ (в Яндексе 1ГБ)