Важное обновление бота 2022-10-19

Важное обновление бота 2022-10-19



Число новых пользователей бота

📖 Предыстория

Изначально мы не предполагали, что кто-то будет вообще поддерживать нашего бота. У нас вообще не принято кого-то бескорыстно поддерживать. Довольно красноречиво на эту тему высказывалась публика паблика "Врата Оргриммара".

Но в какой-то момент, когда публика узнала про подписку, нас стали поддерживать … и массово спамить кружки. Мы переехали на выделенный сервер, поставили лимиты на кружки и все стало хорошо на время.

Мы проводили опросы среди подписчиков по причине подписки. Результаты нас удивили:

📈 Критическая точка

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

Мы изначально планировали делать паки голосов, мы собрали и подготовили данные, но мы не думали, что примерно за один месяц соберется так много. Поэтому несмотря на плотную загрузку на основной работе, мы поднасели и выкатили релиз.

📦 Релиз

Мы увеличили число голосов примерно в 5 раз, добавив 7 новых пакетов голосов. Как и обещали, три первых пакета голосов открыли сразу для всех:

Среди новых пакетов голосов - Warcraft 3 (новые голоса), Half Life 2, Starcraft. Все самые иконичные голоса Warcraft, которых всем не хватало как раз там: аколит, крестьянин, батрак, панда, Сильвана, Мурадин, волшебница. Мы также исправили косяк - до этого два разных голоса Иллидана были слиты в один.

Мы также учли ряд замечаний подписчиков. Общий список фич для подписчиков на этот релиз следующий:

  • 7 новых паков голосов, всего около ~100 голосов;
  • Мы подняли подписчикам лимит на 1 сообщение с 500 до 750 символов;
  • Мы подняли подписчикам лимит на 1 фразу при использовании команды /speak с 150 до 400 символов и поставили общий лимит на /speak в 3000 символов;
  • При переносе на выделенный сервер мы вынесли генерацию кружков для подписчиков на выделенные отдельные ядра процессора;

Мы также внести ряд ограничений, которые почти никто не заметил (если судить по чату). Сейчас основные ограничения стоят примерно такие:

  • Лимит примерно на 1 действие в секунду;
  • Лимит на 10 000 символов в день для обычных пользователей;
  • Лимит в 500 символов на 1 сообщение для обычных пользователей;
  • Лимит в 150 символов на кружки;
  • Лимит в 10 кружков в сутки;

📆 Что ожидается в ближайшем будущем и текущие проблемы

Сейчас есть ряд решаемых проблем:

  • Подписчики просили увеличить длину кружков. При росте длины мы стали упираться в надстройку над ffmpeg по скорости, но вроде мы уже нашли как это обойти, по сути это просто вопрос времени, протестировать и выкатить. Именно генерация кружков должна стать в 10+ раз быстрее:
  • При большой нагрузке на бота, нетерпеливые пользователи шлют много запросов на капчу. Поскольку Телеграм кеширует сообщения, то они при большой нагрузке приходят в случайном порядке, что делает прохождение капчи невозможным. Мы поправим это. Вообще правильно заменить разовую капчу на какую-то более простую, но менее разовую (кликни на кнопку, если ты прочитал это), но мы пока не придумали как это сделать, чтобы лишний раз не бесить пользователей;

Также при каких-то массовых "набегах" на бот (судя по чату - школьники с твича или тиктока) начинает очень долго отвечать (2-3 минуты, что ломает все коллбеки при выборе персонажа). Понятно, что если условно 1,000 юзеров будет одновременно по 100 раз спамить капчу и нажимать на команды в боте, то ничего не спасёт.

Пока все такие инциденты носят разовый характер, но почему-то они всегда совпадают по времени с периодами, когда я ложусь спать и это очень раздражает.

Я поставил мониторинг среднего времени ответа, но похоже надо детально разобраться, чем же спамят юзеры. Пока гипотеза - отправка капчи по 100 раз, но надо будет впилить счетчики и что-то поменять в логике работы сервиса. Может поставить включение "медленного" режима при наплыве пользователей.

🔭 Что ожидается в среднесрочной перспективе

  • В качестве четвертого пака откроем голоса из Portal и Сталкера;
  • Мы пока не решили при каком числе подписчиков мы откроем все оставшиеся голоса и какие еще паки будем делать, и будем ли;



Report Page