Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:56
    fomars closed #853
  • 14:55
    fomars opened #853
  • Nov 09 14:59
    thergbway commented #845
  • Nov 09 01:06
    fomars opened #852
  • Nov 09 01:05

    fomars on master

    Merge pull request #2 from yand… PR from branch users/ival83/yan… PR from branch users/fomars/add… and 68 more (compare)

  • Nov 09 01:05
    fomars closed #851
  • Nov 05 16:06
    arcadia-devtools synchronize #851
  • Nov 05 14:27
    trueival commented #851
  • Nov 04 18:54
    arcadia-devtools synchronize #851
  • Nov 04 00:48
    arcadia-devtools synchronize #851
  • Nov 03 20:43
    arcadia-devtools synchronize #851
  • Nov 02 13:29
    arcadia-devtools synchronize #851
  • Oct 30 13:36

    fomars on Python2

    (compare)

  • Oct 30 13:30
    fomars opened #851
  • Oct 23 11:51
    buhtr commented #845
  • Oct 09 11:49
    IvanVas opened #850
  • Sep 25 12:56
    gmmephisto opened #849
  • Sep 22 07:01
    emorozov opened #848
  • Sep 21 21:16
    kolypto commented #845
  • Sep 09 08:09
    nnugumanov commented #814
Vadim Ponomarev
@velp

Добрый день. Пытаюсь запустить tank для тестов SSL-terminated балансировки через Haproxy. За Haproxy обычный nginx который в корень / просто отдает ОК.

Конфиг tank следующий:

phantom:
  address: some_ip_here:443
  ssl: true
  instances: 10
  load_profile:
    load_type: rps
    schedule: const(400,2m)
  headers:
    - "[Host: kokoko.ru]"
  uris:
    - /
telegraf:
  enabled: false
console:
  enabled: true # enable console output
uploader:
  enabled: true
  package: yandextank.plugins.DataUploader
  token_file: /var/loadtest/token.txt

Сам tank запущен из официального Docker образа. На Haproxy настроено проксирование 443 -> 80 с self-signed сертификатом. Из самого контейнера с tank и curl

[tank]root@d40bf0338d27: /var/loadtest # curl --insecure --resolve "kokoko.ru:443:some_ip_here" https://kokoko.ru/
OK

и telnet

[tank]root@d40bf0338d27: /var/loadtest # telnet some_ip_here 443
Trying some_ip_here...
Connected to some_ip_here.
Escape character is '^]'.

Connection closed by foreign host.

работают.

Но все запросы на тесте показывают 110 Connection timeout. На стороне Haproxy вижу что запросы прилетают но Haproxy их режектит.

Aug 28 14:33:25 60f6227c-3c61-4b04-9401-2fd8d5839823 haproxy[9513]: ***:57010 [28/Aug/2020:14:33:25.639] 7b82a0aa-8f99-4cc6-ba1b-ac9e8eaba837/1: SSL handshake failure
Aug 28 14:33:25 60f6227c-3c61-4b04-9401-2fd8d5839823 haproxy[9513]: ***:56978 [28/Aug/2020:14:33:25.639] 7b82a0aa-8f99-4cc6-ba1b-ac9e8eaba837/1: SSL handshake failure
Aug 28 14:33:25 60f6227c-3c61-4b04-9401-2fd8d5839823 haproxy[9513]: ***:56932 [28/Aug/2020:14:33:25.639] 7b82a0aa-8f99-4cc6-ba1b-ac9e8eaba837/1: SSL handshake failure

Как подружить yandex-tank с self-signed SSL?

Пробовал добавлять в конфиг tank настройки client_certificate и client_key с файлами, но результат тот же.

Vadim Ponomarev
@velp
👆🏻разобрался. Было выставлено слишком много instances в тестах.
IvanKyznetsov
@IvanKyznetsov

Здравствуйте, после окончания тестирования, во время остановки мониторинга, выдает ошибку и мониторинг не сохраняется(возможно вообще не отрабатывает).
Конфига танка, тут все просто:

overload:
  enabled: true
  token_file: token.txt
phantom:
  address: ***:80
  uris:
    - /
  load_profile:
    load_type: rps
    schedule: const(20, 20)
console:
  enabled: true
telegraf:
  enabled: true
  package: yandextank.plugins.Telegraf
  config: monitoring.xml
  kill_old: false
  ssh_timeout: 30s

Конфиг мониторинга:

<Monitoring>
    <Host address="***" interval="1" username="root">
        <CPU/> <Kernel/> <Net/> <System/> <Memory/>
    </Host>
</Monitoring>

И сама ошибка:

2020-08-30 15:09:54,687 [INFO] yandextank.core.tankcore tankcore.py:321 Stopping monitoring
2020-08-30 15:09:54,687 [INFO] yandextank.core.tankcore tankcore.py:323 Stopping <yandextank.plugins.Telegraf.plugin.Plugin object at 0x7f0495a288d0>
2020-08-30 15:09:54,688 [INFO] yandextank.plugins.Telegraf.plugin plugin.py:233 Finishing monitoring
2020-08-30 15:09:54,688 [DEBUG] yandextank.plugins.Telegraf.collector collector.py:120 Uninstalling monitoring agents
2020-08-30 15:09:54,688 [WARNING] yandextank.plugins.Telegraf.client client.py:361 Unable to correctly stop monitoring agent - session is broken on 134.209..
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/yandextank/plugins/Telegraf/client.py", line 355, in _stop_agent
self.session.send("stop\n")
File "/usr/local/lib/python2.7/dist-packages/yandextank/common/util.py", line 158, in send
self.session.send(data)
File "/usr/local/lib/python2.7/dist-packages/paramiko/channel.py", line 801, in send
return self._send(s, m)
File "/usr/local/lib/python2.7/dist-packages/paramiko/channel.py", line 1198, in _send
raise socket.error("Socket is closed")
error: Socket is closed
2020-08-30 15:09:56,194 [ERROR] yandextank.plugins.Telegraf.client client.py:394 Unable to get agent artefacts
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/yandextank/plugins/Telegraf/client.py", line 386, in uninstall
log_filename)
File "/usr/local/lib/python2.7/dist-packages/yandextank/common/util.py", line 109, in get_file
result = sftp.get(remote_path, local_path, self.get_progress_logger(remote_path))
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 802, in get
size = self.getfo(remotepath, fl, callback)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 778, in getfo
file_size = self.stat(remotepath).st_size
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 493, in stat
t, msg = self._request(CMD_STAT, path)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 813, in _request
return self._read_response(num)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 865, in _read_response
self._convert_status(msg)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 894, in _convert_status
raise IOError(errno.ENOENT, text)
IOError: [Errno 2] No such file
2020-08-30 15:09:56,194 [DEBUG] yandextank.plugins.Telegraf.collector collector.py:133 Waiting for agent <yandextank.plugins.Telegraf.client.SSHClient object at 0x7f0495766210> reader thread to finish.
Gorelykh Anatoly
@Rosherh

Здравствуйте! Подскажите, пожалуйста, не знаю в чем проблема. Я пытаюсь отправить POST-запрос с данными типа multipart/form-data в котором только 1 поле-массив и несколько значений.

590 get_options
POST /api/v1/get_options HTTP/1.1
User-Agent: Tank
Accept: */*
Host: ...
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------880024703496342765159645
----------------------------880024703496342765159645
Content-Disposition: form-data; name="options[]"

cities
----------------------------880024703496342765159645
Content-Disposition: form-data; name="options[]"

professions
----------------------------880024703496342765159645
Content-Disposition: form-data; name="options[]"

lands
----------------------------880024703496342765159645--

Если сделаю точно такой же запрос через Postman, то получу данные, и код ответа 200, при проверке такого запроса через YT получаю 400 Bad request... Заранее спасибо!

Evgeny Nichegovskiy
@DrBlast
Привет! Вопрос по pandora. Когда запускаю тест grpc через go: go run main.go, все проходит штатно, запросы отправляются
Когда пытаюсь запустить нагрузку через yandex-tank или командой pandora conf.yaml выдается ошибка
    {"error": "3 error(s) decoding:\n\n* 'pools[0]' has invalid keys: source\n* error decoding 'pools[0].ammo': 
no plugins of type core.Provider has been registered for name custom_provider\n* error decoding 'pools[0].gun': 
no plugins of type core.Gun has been registered for name mygun"}
Grigoriy
@ligreen
@Rosherh Привет, очень похоже на то, что не хватает заголовка Content-Length в запросе.
Gorelykh Anatoly
@Rosherh
@ligreen спасибо за ответ! При добавлении Content-Type теперь просто HTTP code 0 N/A... :) В Net code 110 Connection timed out... Странная штука
Evgeny Nichegovskiy
@DrBlast
разобрался, в инструкции лучше явно прописать, что если используется кастомный провайдер, то в месте где указывается # Pandora executable path нужно указывать бинарник кастомного провайдера
pandora_cmd: ./mygun
Mihail Politaev
@mpolitaev

Парни привет!

А вот смотрю что SNI не поддерживается в Phantom, правда что говорят что в Jmeter, если его использовать, этой проблемы нет?

Alexey Artamonov
@scooby18_gitlab
Ребят, а есть кто у кого эластик более 500rps тянет
Mihail Politaev
@mpolitaev
Ну у нас Грэйлог + Эластик. Грэйлог показывает 2000 сообщений в сек на запись. Ну а запись идёт в Эластик. Видимо у нас тогда есть)
Конфигурация - 1 мастер нода, без данных и 2 дата ноды
Alexey Artamonov
@scooby18_gitlab
у меня поисковый запрос
3 мастер - дата ноды
по 32гб озу и 8 ядер, rps 520. Выше получаю http 429
Gorelykh Anatoly
@Rosherh

Ребят, объясните, пожалуйста. Пытаюсь провести нагрузку на 9 роутов одного сервиса, которые описаны в ammo.txt. Не понимаю как узнать корректную фактическую нагрузку, пишет RPS:25 при этом использует Active instances: ~250. Сами instances никак не нужно учитывать в показатель нагрузки (что-то типа Instances * rps) и главное смотреть на показатель RPS? При тестировании с файлом ammo.txt как-то играет показатель если описывать больше 1 роута для теста?

Просто странно, что при 25 RPS, судя по показателям на экране, я уже получаю какие-то ошибки в HTTP Codes: 0 N/A и в Net codes: 110 Connection timed out.

Конечно, возможно, здесь играет роль, как настроен файл конфигурации nginx, но даже с настройками по умолчанию должно же выдавать rps больше...

Vladislav Popov
@WhatIsLooove

Всем привет, подскажите пожалуйста, как через Пандору отправить запрос с параметрами. В фантоме для ГЕТ запроса в файле load.yaml можно было прописать два параметра и пережать хедеры так:
header_http: "1.1"
headers:

    - "[Host: hostname.com]"
    - ...

Но Пандора не принимает эти параметры в файле и все запросы валятся с ошибкой.
Еще подскажите как отправлять ПОСТ запросы с json телом запроса?

Vladislav Popov
@WhatIsLooove

И подскажите еще как ее с Яндекс танком подружить, а то появляется ошибка
Test interrupted:

<type 'exceptions.RuntimeError'>: Unable to start Pandora binary and/or file does not exist: ['/Users/popov/yandex-tank/pandora', '-expvar', '/var/loadtest/yandex-tank/logs/2020-09-15_09-55-42.953168/pandora_config_3s5i9Q.yaml']

<traceback object at 0x7fb300459b48>

Andrey Filatov
@afilatov
@Rosherh В вашем случае мишень/сервис не отвечает и все запросы отваливаются по таймауту (по умолчанию в танке 11 секунд), поэтому вы и видите на экране соответствующие ошибки с netcode 110. Что касается инстансов, то их количество объяснимо: для 25 rps и времени ответа на каждый запрос в 10 секунд танку приходится использовать 10*25 = +-250 инстансов
BischevRamil
@BischevRamil
Всем привет, кто нибудь устанавливал танк на яндекс клауд из маркетплэйса? При подключении к серийной консоли танк просит логин и пароль. Откуда его взять?
netgineer
@netgineer
Привет. Подскажите, почему танк по достижении указанного в конфиге числа рпс и времени может не завершать работу, а продолжает висеть с 0 рпс?
Vladislav Popov
@WhatIsLooove
Привет, поясните разницу между типами нагрузки rps и instance
Не могу понять в чем их разница и когда какую лучше использовать
Grigoriy
@ligreen

Привет. Подскажите, почему танк по достижении указанного в конфиге числа рпс и времени может не завершать работу, а продолжает висеть с 0 рпс?

Привет, такое может быть если времена ответа большие и танк ждет пока к нему прилетят ответы на все, отправленные ранее, запросы. Какие тайминги у вашего сервиса в этот момент были?

1 reply
Grigoriy
@ligreen

Привет, поясните разницу между типами нагрузки rps и instance
Не могу понять в чем их разница и когда какую лучше использовать

Привет, вот тут есть пояснение про открытую и закрытую системы https://youtu.be/BueCj8eaZio?t=995
Если в кратко, то в случае с instance скорость запросов внутри одного соединения никак не ограничивается, сколько успевает запросов через одно соединение пролезть последовательно - столько rps и получите в виде нагрузки на сервис. А в случае стрельб rps-ами, их скорость в рамках соединения ограничивается.

Elena
@h-elena
Привет. Имею проблему с запуском танка по https с нестандартным портом. Использую модуль фантом. Проблема - 104 Connection reset by peer. При этом через Postman я до этого урла достукиваюсь. Мониторя с wireshark увидела, что с постманом идет протокол TLSv1.2, а вот от танка идет - TLSv1.0. Танк развернула на виртуалке Ubuntu 18.04 LTS. Версия openssl - 1.1.1. Разворачивала по инструкции https://yandextank.readthedocs.io/en/latest/install.html - Installation from PyPi. Как заставить такн работать по TLSv1.2? Что я делаю не так? Файл конфига
phantom:
  address: ***.ru:45200 # [Target's address]:[target's port]
  ammofile: 1.txt
  ssl: true
  uris:
  load_profile:
    load_type: rps # schedule load by defining requests per second
    schedule: line(1, 2, 10s)
  writelog: all
  instances: 3
  loop: -1
autostop:
  autostop:
    - net(101, 10, 10)
    - http(5xx, 25%, 10)
console:
  enabled: true # enable console output
telegraf:
  enabled: false
overload:
  enabled: false
  package: yandextank.plugins.DataUploader
  token_file: "token.txt"
Jiojeq
@jiojeq2_gitlab
Доброго дня, решил обратиться за помощью, сам решить проблему не смог. Итак, пытаюсь подключить telegraph, в итоге получаю ошибку:
12:45:16 [ERROR] Telegraf agent send trash to output: Exception in thread Thread-1:
Слышал, что это может быть связано с старым питоном на мишени. На мишени 2.7.13 на стрелке 2.7.15+. Хотел спросить, в какую сторону копать. Здесь же увидел инфу, что версия должна быть выше 2.7, но, как видите она выше.
Jiojeq
@jiojeq2_gitlab
Ну и в конце
14:18:23 [INFO] Receiving from 10.20.13.246:[/tmp/tmpXeQO6n/monitoring.rawdata] to [agent_10.20.13.246.rawdata]
14:18:23 [ERROR] Unable to get agent artefacts
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/yandextank/plugins/Telegraf/client.py", line 370, in uninstall
data_filename)
File "/usr/local/lib/python2.7/dist-packages/yandextank/common/util.py", line 109, in get_file
result = sftp.get(remote_path, local_path, self.get_progress_logger(remote_path))
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 802, in get
size = self.getfo(remotepath, fl, callback)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 778, in getfo
file_size = self.stat(remotepath).st_size
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 493, in stat
t, msg = self._request(CMD_STAT, path)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 813, in _request
return self._read_response(num)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 865, in _read_response
self._convert_status(msg)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 894, in _convert_status
raise IOError(errno.ENOENT, text)
IOError: [Errno 2] No such file
Vladislav Popov
@WhatIsLooove
Добрый день, подскажите как подключить мониторинг ресурсов машины, на которой развернут сервер? Видел часто в выступлениях на конференциях смотрят загрузку ЦП, утечки, но у меня в оверлоаде при отображении подобных графиков пишет "no Data to display"
razin3061
@razin3061
Всем привет.
https://overload.yandex.net/ не поплохело ли?
2020-10-13 09:50:15,007 [DEBUG] urllib3.connectionpool connectionpool.py:396 https://overload.yandex.net:443 "POST /api/monitoring/receiver/push?job_id=329132... HTTP/1.1" 500 27
2020-10-13 09:50:15,009 [WARNING] yandextank.plugins.DataUploader.client client.py:557 API error, will retry in 10s...
Kirzilla
@Kirzilla
да, что-то отчеты не грузятся :/
Grigoriy
@ligreen
Починили, были проблемы в БД. Попробуйте повторить стрельбы.
This message was deleted

Добрый день, подскажите как подключить мониторинг ресурсов машины, на которой развернут сервер? Видел часто в выступлениях на конференциях смотрят загрузку ЦП, утечки, но у меня в оверлоаде при отображении подобных графиков пишет "no Data to display"

Привет, в танке есть плагин для мониторинга Telegraf, вот тут можно найти инструкцию по его настройке и использованию: https://yandextank.readthedocs.io/en/latest/core_and_modules.html#telegraf

@WhatIsLooove
Kirzilla
@Kirzilla

Починили, были проблемы в БД. Попробуйте повторить стрельбы.

Спасибо!

Vladislav Popov
@WhatIsLooove

Привет, в танке есть плагин для мониторинга Telegraf, вот тут можно найти инструкцию по его настройке и использованию: https://yandextank.readthedocs.io/en/latest/core_and_modules.html#telegraf

Спасибо)

Karina
@sk_sagittarius_gitlab
Здравствуйте, может кто-нибудь сможет подсказать - при нагрузке на https с яндекс танка выходит ошибка net code 104 - connection reset by peer. при нагрузке с яндекса на http или с апач на http/https ошибок нет
Karina
@sk_sagittarius_gitlab
порт 443 стоит, ssl true, нагружала еще четыре других сайта с ssl шифрованием и там ошибок нет
WeCanStudio
@WCStudio2017
По какой причине значения rps и threads всегда равны нулю https://overload.yandex.net/331141 ? Яндекс-Танк - в докере. Использую кастомную пушку, которая описана здесь https://github.com/yandex/pandora/blob/develop/docs/custom.rst#gRPC
Karina
@sk_sagittarius_gitlab
а что в rps прописано? с phantom не пробовали?
Ali Nuraldin
@Alirun

Всем привет! Уже битый час не могу сделать запрос с SSL

Можете пожалуйста кто-то указать что я делаю не так?

phantom:
  address: api.opium.exchange:443 # [Target's address]:[target's port]
  ssl: true
  uris:
    - /v1/meta/config
  load_profile:
    load_type: rps # schedule load by defining requests per second
    schedule: const(1, 10s) # starting from 1rps growing linearly to 10rps during 10 minutes
console:
  enabled: true # enable console output
telegraf:
  enabled: false # let's disable telegraf monitoring for the first time
В логах следующее:
2020-10-15 14:37:49.803 +0000 [error] [benchmark_io 002] SSL error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
2020-10-15 14:37:49.805 +0000 [error] [benchmark_io 002] SSL_connect error 1
Karina
@sk_sagittarius_gitlab
ssl должн быть true
Ali Nuraldin
@Alirun
Ой, это я игрался
Он на true стоял
Так что не помогло
Поменял
Сервер стоит за Cloudflare