сервер с танком: user@178.154.220.109
код websocket-пушки лежит: /home/user/pandora/
	* собирается в бинарник командой go build pandora.go
	* после этого бинарник лежит рядом как ./pandora
конфигурация и данные для запуска теста лежат в /home/user/yac/
	* ammo-40000.json - файл с запросами для теста в json-формате
	* load.yaml - конфиг для запуска стрельбы через yandex-tank
	* overload.txt - токен для заливки данных в overload.yandex.net
	* token.txt - токены пользователей чата (нужен для генерации ammo-*.json файла)

Запуск теста:
	* cd ./yac
	* yandex-tank -c load.yaml

Подробней про конфиг load.yaml:
- В основном все необходимое настраивается в секции pandora
pandora:
    enabled: true
    pandora_cmd: /home/user/pandora/pandora
    config_content:
        pools:
           - id: Custom
             gun:
                 type: my_custom_gun_name
                 target: 84.201.172.228:4000
                 handler: /chat
                 SleepBeforeSend: 70
                 UserSendFactor: 5
                 MsgPerUser: 1
             ammo:
                  type: ammo_provider
                  source:
                      type: file
                      path: ./ammo-40000.json
             result:
                 type: phout
                 destination: ./phout.log
             rps: {type: once, times: 8040}
             startup: {type: const, ops: 134, duration: 60s}
        log:
            level: debug
        monitoring:
            expvar:
                enabled: true
                port: 1234

тут pandora_cmd - это путь до собранного бинарника пушки
target - это ip и порт сервера с чатами
handler - соответственно handler для wedsocket запросов
SleepBeforeSend - это время в секундах которое говорит сколько спать пользователю после подписки на сообщения чата и до отправки первого сообщения в чат
UserSendFactor - чем больше это число, тем больше пользователей будут отправлять сообщения, диапазон от 1 до 100. Это по сути ограничение на отправку сообщений, чтобы не каждый пользователь отправлял сообщения и тем самым мы не создаем большую нагрузку на запись сообщений в чат. В коде пушки, перед отправкой сообщения просто делаем random от 1 до 100 и если полученное число больше чем 100 - UserSendFactor, то тогда пользователь отправляет сообщение
MsgPerUser - это кол-во сообщений, которое каждый пользователь попытается отправить за время работы теста. Это по сути тоже ограничение кол-ва отправляемых сообщений.
rps - это количество запросов, которое будет прочитано из файла ammo-40000.json в первую секунду работы теста. Это по сути количество наших одновременных пользователей в тесте
startup - это скорость просыпания наших пользователей. В данном случае 134 пользоателя просыпаются каждую секунду в течении 60 секунд. Суммарно это как раз равно rps, т.е. 134*60=8040

Сценарий пушки устроент сейчас так:
	1. пушка для каждого коннекта читает один запрос из ammo-40000.json
	2. затем устанавливает websocket соединение и держит его до завершения теста. И у нас таким образом один коннект = одному пользователю, т.е. одному токену из фала ammo-40000.json
	3. параллельно каждому коннекто поднимается отдельная gorutine, которая в бесконечном цикле принимает все входящие соощения для данного websocket соединения.
	3. коннекты устанавливаются не сразу все в первую секунду теста, а согласно рассписанию, заданному в rps
	4. после запуска каждый коннект сразу отправляет запрос на подписку в чат с id 30cfb7af-213e-4934-88ef-068da30c103e
	5. затем ждет SleepBeforeSend секунд
	6. затем пытается отправить сообщение MsgPerUser колчество раз, делая еще при этом random sleep от 1 до 30 сек между сообщениями
	7. после отправки всех сообщений коннект ждет 240 секунд. Такая задержка выставлена специально, чтобы дождаться все сообщений, которе могут задерживаться.
	8. Затем тест завершается

Во время работы yandex-tank в консоль выводится много доп информации по поводу отправленных сообщений, времени работы ответа, добов ответа. Так же, если видно, что все сообщения пришли уже и нет смысла больше ждать, то работу танка всегда можно прирвать по Ctrl+C
