-
Notifications
You must be signed in to change notification settings - Fork 1
Конфигурирование
[Предыдущая: Утилиты командной строки](Утилиты командной строки)
Основной способ подачи инструменту информации о необходимых действиях - это 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
В 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-вызов и вывод 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. Если в каком-то месте инструмента такая функция отсутствует - это баг.