Skip to content

Конфигурирование

Andrey Pohilko edited this page Feb 10, 2013 · 13 revisions

[Предыдущая: Утилиты командной строки](Утилиты командной строки)

Конфигурирование

Основной способ подачи инструменту информации о необходимых действиях - это INI-файлы. Эти файлы состоят из опций, разбитых на секции. Например:

[phantom]
address=target146.load.net:8080
rps_schedule=const(100,60s)

[autostop]
autostop=instances(80%,10)

Авто-загрузка конфигов

Если не указана опция --no-rc, то Яндекс.Танк при запуске считывает автоматически все конфигурационные файлы *.ini из директории /etc/yandex-tank, а также файл персонального конфига ~/.yandex-tank. Это позволяет делать небольшую персонализацию, помещая в файл ~/.yandex-tank "любимые" настройки, например tank.artifacts_base_dir, phantom.cache_dir, console.info_panel_width

Использование секции DEFAULT

В INI-файлах конфигурации можно использовать магическую секцию DEFAULT, опции из которой действуют во всех прочих секциях. Например, файл вида:

[autostop]
autostop=time(1,10)

[console]
short_only=1

[aggregator]
time_periods=10 20 30 100

[meta]
job_name=ask

можно заменить файлом вида:

[DEFAULT]
autostop=time(1,10)
short_only=1
time_periods=10 20 30 100
job_name=ask

Единственная предосторожность - не использовать в секции DEFAULT опции, которые называются одинаково в разных секциях, например config, иначе получатся непредсказуемые глюки. Однако, чтобы облегчить написание файлов конфигурации, можно в секции DEFAULT использовать опции с указанием секции через точку, например:

[DEFAULT]
monitoring.config=mon.xml
tips.disable=1

Многострочные опции

В INI-формате, при указании опции с одинаковым названием несколько раз, действовать будет лишь значение последней. Однако есть способ указывать многострочные опции, для этого нужно использовать отступы в пару пробелов с новой строки. Например:

[autostop]
autostop=time(1,10)
  http(404,1%,5s)
  net(xx,1,30)

Требуйте поддержки мультистрочных опций в необходимых местах от разработчиков Яндекс.Танка!

Shell-опции

Если указать значение опции внутри обратных кавычек, то будет сделан shell-вызов и вывод stdout будет присвоен опции (так же, как делает это bash). Например:

[meta]
job_name=`pwd`

Ссылка одной опции на другую

Синтаксис %(optname)s позволяет ссылаться на значение другой опции внутри одной секции. Вкупе с секцией DEFAULT это позволяет избегать дублирования, например, так:

[DEFAULT]
host=target12.load.net

[phantom]
address=%(host)s:8080

[monitoring]
default_target=%(host)s

[shellexec]
prepare=echo Target is %(host)s

Единицы измерения

Во всех опциях, где это имеет смысл, можно применять сокращенное написание единиц в миллисекундах или секундах. Например, в автостопе вместо time(30000,120) можно написать time(30s,2m). При этом можно смешивать единицы измерения, например 1h30m15s или 2s15ms. Если в каком-то месте инструмента такая функция отсутствует - это баг.

Далее: Артефакты