Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Alexey Lavrenuke
@direvius
@Sammers21 возьми готовый плагин генератора -- pandora, например -- и вместо пандоры запускай свою стрелялку. Нужно будет научиться писать лог запросов с временами и отдавать его танку. Если подойдет стандартный формат -- то можно читалку от пандоры же и взять. Если нет, то можно свою читалку написать
а, пандора как раз использует фантомовскую читалку. Вот она: https://github.com/yandex/yandex-tank/blob/develop/yandextank/plugins/Phantom/reader.py
самое важное, которое на большинстве графиков -- interval_real
коды ответов интерпретируются как HTTP коды. То есть, 200-ки помечаются зелененьким на графиках, 500-ки -- красненьким
Alexey Lavrenuke
@direvius
я кстати тоже делал когда-то давно подход к стрелялке на джаве, только на jetty. Уже не помню, чем дело закончилось
Alexey Lavrenuke
@direvius
то есть, я вижу это так:
  1. взять танковый плагин pandora, скопировать в ashbringer
  2. вместо запуска пандоры прописать запуск ashbringer
  3. научиться пробрасывать параметры из танкового конфига в комманд лайн ashbringer
  4. научиться писать логи в фантомовском формате
  5. должно работать, в том числе с Overload
а, да. Сейчас код танка лучше брать из релизной ветки: release-1.9.0
там новые требования к плагинам
Pavel Drankov
@Sammers21
@direvius , круто. Я обязательно найду время заняться этим. Если будут вопросы или когда все будет готово - дам тебе знать
Alexey Lavrenuke
@direvius
@Sammers21 ок!
Alexey Larkov
@gmlexx
привет, а подскажите пожалуйста конфиг для пандоры, чтобы симулировать 1000 одновременных подключений к серверу, и переодическую отсылку запросов скажем 1 запрос за 10 секунд на одно подключение, чтобы в сумме 100 RPS было. Ну и держать такую нагрузку в течение 10 минут например.
Alexey Lavrenuke
@direvius
@skipor посмотри, а то я не уверен, что я хорошо знаю последнюю версию конфига
Vladimir Skipor
@skipor
    rps:
      type: const
      ops: 1000
      duration: 10m

    startup:
      type: once
      times: 1000
batch расписание устарело
Ну и кажется нет смысла делать индивидуальные расписание на соединения: инстансы и так будут через fifo патроны получать, так что равномерно получится.
Eugene Dudnik
@esdudnik

Всем привет. Кто поможет разобраться со след моментов. Поставил себе yandex-tank с pandora. Конфиг файл load.yaml след

core:
overload:
 enabled: true
 package: yandextank.plugins.DataUploader
 token_file: token.txt
pandora:
 config_file: instance-increase_rps-unlimited.yaml
 enabled: true
 expvar: true
 package: yandextank.plugins.Pandora
 pandora_cmd: /usr/bin/pandora
phantom:
 enabled: false

При попытке прочитать конфиг файл (instance-increase_rps-unlimited.yaml) падает на “pools”

17:45:53 [INFO] Exception: Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/yandextank/core/consoleworker.py", line 404, in perform_test
    self.core.plugins_configure()
  File "/usr/local/lib/python2.7/dist-packages/yandextank/core/tankcore.py", line 266, in plugins_configure
    plugin.configure()
  File "/usr/local/lib/python2.7/dist-packages/yandextank/plugins/Pandora/plugin.py", line 57, in configure
    config_content = self.patch_config(self.get_option("config_content"))
  File "/usr/local/lib/python2.7/dist-packages/yandextank/plugins/Pandora/plugin.py", line 140, in patch_config
    for pool in config['pools']:
KeyError: 'pools'

17:45:53 [ERROR] ‘pools'

Причем если напрямую запустить pandora то на этом месте не падает(там дальше уже ошибки в конфиг файле пандоры).
Подскажите пожалуйста в какую сторону копать. Заранее спасибо

Alexey Lavrenuke
@direvius
ответил в чатике танка
Michał Nowotka
@mnowotka
Hi guys!
thanks for this project
I'm trying to install it
go get github.com/yandex/pandora
cd $GOPATH/src/github.com/yandex/pandora
dep ensure
go install
this went all fine but now:
pandora
-bash: pandora: command not found
I can do:
go run main.go load.yml and it works fine
but I was kind of expecting that after executing go install I'll get a command available in my system or at least in the current dir
Pavel Drankov
@Sammers21
are you able to find it here /usr/bin/pandora ?
Michał Nowotka
@mnowotka
nope, that's the thing
I have /usr/bin on my PATH
as expected
Michał Nowotka
@mnowotka
also, do you know what kind of gun supports SSL?
I can't specify any https target
Dmirtiy Sibilkov
@sibilkov
В общем у меня есть примерно такой сценарий который я использую в жиметре (сценариев подобных много, на разные моменты но принцип похож), хотелось-бы узнать возможно ли это в принципе реализовать это в пандоре (и если да, то где почитать КАК это сделать):
Залогинились случайным пользователем (одним из пары тысяч), записали в куки что залогинились
Запросили список доступных абоненту сервисов
Получили json со списком сервисов, вынули из него список id, взяли случайный id, запомнили
Запросили список устройств в сервисе вписав его id(который вынули из json в предыдущем пункте) в запрашиваемый урл
Получили json со списком устройств, вынули из него список id, взяли случайный id, запомнили
Запросили данные из тайм-сериес базы по устройству, вписав его айдишник (который вынули из jsonа в предыдущем пункте) в запрашиваемый урл
получили большой кусок данных который нас не интересует
Написали в базу по устройству 100500 рандомных цифр
Разлогинились
Прикол в том что там очень много рандомных ид, которые нужно вставлять в урлы по-пути вынимая их из предыдущих запросов
Достичь нужно нагрузки примерно в 5к рпс, жиметр на паре машин с 16гб памяти сыпется на 1,5к, память забивается вся полностью, в общем я в полнейшем замешательстве.
Alexey Lavrenuke
@direvius
@sibilkov почитать пока негде. А сделать можно, написав свой код на Golang, наподобие https://github.com/yandex/pandora/blob/develop/examples/custom_pandora/custom_main.go
@mnowotka set ssl: true in http gun
Alexey Lavrenuke
@direvius
FYI: перетащили скудную (пока) документацию по Пандоре на RTD, добавили раздел про тесты производительности Pandora: http://yandexpandora.readthedocs.io/en/develop/performance.html
botov
@botov
Hi guys! Could you advice how to prepare HTTP2 ammo? In particular I am interested in some binary data POSTing. Have not found any worth examples/documentation so far. Looking forward to your reply!
botov
@botov
Eventually managed to do with BFG in conjunction with yandex-tank, config_type=ultimate
mishunn
@mishunn
how can i make http2 post request using client certificate?
mishunn
@mishunn
@direvius подскажите как должен выглядеть raw для POST HTTP2 и можно ли использовать клиентские сертификаты?
Alexey Lavrenuke
@direvius
@mishunn давно не стрелял в H2, насколько я помню, так же как и для HTTP
Vasiliy
@webchi
а можно как-то без ammo: запустить?
Vasiliy
@webchi
копец.. надо ещё в ammo.uri сунуть /
lebovski
@lebovski
Всем привет, возникла потребность в дополнительных флагах для пандоры. Можно ли как то их пробросить при обстреле через танк?
lebovski
@lebovski
например у jmetr есть args (https://yandextank.readthedocs.io/en/latest/config_reference.html#args-string), можно ли сделать подобное для пандоры?
Vasiliy
@webchi
как оно?
Vasiliy
@webchi
давно пандорой не пользовался
WARN    phttp/base.go:116    Request fail    {"pool": "HTTP pool", "instance": 5, "error": "remote error: tls: handshake failure"}
Vasiliy
@webchi
чёт поход через клаудфлер не пролезть
Vasiliy
@webchi