
Oleg
11.01.2017
10:01:46

Vyatcheslav
11.01.2017
10:02:04
есть места, где иммутабельные коллекции полезно юзать, т.к. хз что будет с кодом (вдруг футуры появятся), и кода много, можно без злого умысла пропустить этот момент
ну да

Alex
11.01.2017
10:08:42
а в кошках есть when?

Google

Dmitry
11.01.2017
10:39:57
Фри-джедаи, подскажите что почитать про композинг фри алгебр?
@notxcain насколько я помню ты сталкивался с этим или нет?

?Ivan
11.01.2017
10:48:15
поиск по #free_are_simple

Nikolai
11.01.2017
10:54:51

Nikolay
11.01.2017
10:56:01

Nikolai
11.01.2017
10:56:18
не знаю

Andrey
11.01.2017
10:56:25
@zuynew мне вот это скидывали на похожий вопрос http://degoes.net/articles/modern-fp-part-2
там же есть ссылка на реализацию от @notxcain

Dmitry
11.01.2017
11:02:19
http://www.47deg.com/blog/fp-for-the-average-joe-part3-free-monads/
вот здесь есть что-то
еще не успел прочесть

Dmitriy
11.01.2017
11:04:06
большинство статей о фри монадах для меня выглядят как-то так
http://s00.yaplakal.com/pics/pics_original/4/4/4/282444.jpg
видимо не дорос еще

Google

Dmitry
11.01.2017
11:04:38
ну, я после Роба Нориса и его дуби немного прозрел
конечно перед этим Де Гоеса прочел
но не все 100% понял офк

Nick
11.01.2017
11:07:00
а какой нынче pay scale для scala
сколько платят помидорам

Dmitry
11.01.2017
11:08:06
хз
я не они

Борис
11.01.2017
11:35:23
Народ, а никто не сталкивался с задачей симулирования реальной нагрузки на систему? Может кто знает какие подходы, инструменты или по каким тегам гуглить?

Vadim
11.01.2017
11:36:34
стресс тестирование

Nick
11.01.2017
11:36:39

Dmitry
11.01.2017
11:38:39
yandex tank

Борис
11.01.2017
11:38:58
не, я про то как по логам воссоздать профиль нагрузки походящий на реальную

Alexey
11.01.2017
11:39:58
ну так про это и написали выше

Vadim
11.01.2017
11:40:22
я думаю тут вопрос как логи достать?)
все просто если http и гет запросы

Dmitry
11.01.2017
11:40:55
можно зеркалить трафик с прода например

Alexey
11.01.2017
11:40:55
ага

Vadim
11.01.2017
11:41:01
иначе либо руками генерировать, либо придумать особые логи и собирать их с про

Dmitry
11.01.2017
11:41:04
была тулза на го

Alexey
11.01.2017
11:41:11
gor

Google

Dmitry
11.01.2017
11:41:17
точно
да
но она крашилась на "npe"
полгода назад

Alexey
11.01.2017
11:42:10
там много но. но у нас работает

Vadim
11.01.2017
11:42:27
а она умеет в переписывание хедеров? я с чего-то таким более старым пробовал, но проблемы оставались с заголовками и я бросил эту затею

Nick
11.01.2017
11:42:41
yandex tank
O_o я последний раз когда юзал яндексовые тулзы, было больно

Dmitry
11.01.2017
11:43:12
jmeter мне тоже не оч понравился

Борис
11.01.2017
11:44:09
эт все утилиты для генерации нагрузки а не для анализа, я не ошибаюсь?

Alexey
11.01.2017
11:47:23
анализ чего нужно сделать?

Борис
11.01.2017
11:47:43
я хочу по имеющимся логам, скажем за три месяца, симитировать нагрузку в N раз больше, причем понимая сколько активных пользователей при этом имитируется

Alexey
11.01.2017
11:48:06
ну то есть это генерация нагрузки :)

Alexey
11.01.2017
11:48:23
еще посмотри про гатлинг

Anton
11.01.2017
11:57:55
При всей крутости гатлинга, анализ результатов в jmeter мне показался более приятным. Но может просто не раскурил.

Борис
11.01.2017
12:05:07
как-то не получается у меня донести вопрос)

Max
11.01.2017
12:08:02
Как можно сделать такую тулзу, которая не зная, что делает приложение - воспроизвела ситуацию, чтобы приложение выдало такие же логи - магия какая то

Nick
11.01.2017
12:09:58
логи анализировать глупость полная)
точнее нужно помнимать, что картинка может быть ну очень странной

folex
11.01.2017
12:10:27
в каком плане странной?

Nick
11.01.2017
12:11:46
в таком, что логи формат разный умеют)

Google

Борис
11.01.2017
12:11:52
на примере, есть юзер, ночью спит, в выходные отдыхает, в будни делает запросы, но не равномерно, то редко, то сразу пачку пошлет, еще и у разных типов запросов разное распределение по времени. Вопрос в том какие подходы бывают для анализа его поведения в целях нагрузочного тестирования

D
11.01.2017
12:12:47

Борис
11.01.2017
12:14:03
Под логами я имею ввиду набор запросов к серверу с таймстемпами

Vladimir
11.01.2017
12:14:13

D
11.01.2017
12:14:31
едрить вы нафлудили тут

Евгений
11.01.2017
12:16:58
1600 unread messages >_<

Admin
ERROR: S client not available

Anton
11.01.2017
12:17:47

Борис
11.01.2017
12:18:25
Ну да, все так
Не обязательно автоматическая утилита, любые подходы или методологии помогут делу)

Nikolai
11.01.2017
12:25:11

Tatiana
11.01.2017
12:29:09
Сначала определяется цель НТ, потом собирается статистика, составляются профили (все правильно сказал - выходной день, ночь, будни и т.д.). Если нужно тестирование стабильности - то гонять тесты на профиле обычного дня в течении длительного времени (может суток), если хочешь определить предельную нагрузку - то составляешь ступенчатый профиль (увеличиваешь нагрузку ступеньками с течением с интервалом и так определяешь момент деградации) и т.д. Часто Jmeter хватает за глаза.


Борис
11.01.2017
12:54:53
ага, допустим цель НТ выяснить какое количество пользователей выдерживает система, есть статистика за 3 месяца, выделили из нее период максимальной активности (например будний день во второй половине дня), встает задача составить из этих данных ступенчатый профиль, первое что приходит в голову - либо наготовить семплов из логов и многократно прокручивать их с рандомным смещением, либо как-то расчитать математическую модель и научится ее воспроизводить (в простейшем случае средний рейт)


Tatiana
11.01.2017
13:05:55
Во первых просто сэмплы из логов и рандомно их прокручить можно наплороться на кэширование. Поэтому при каждом запросе система должна отрабатывать полностью, для этого запросы должны быть разные (обычно заполняются рандомными, но валидными данными), хотя конечно зависит от системы. Второе если хочется узнать узнать максимальное количество пользователей: в любом инструменте НТ есть такая функция как ступенчатый тест план. То есть начинаем подавать нагрузку с интенсивностью чуть ниже максимальной активности, смотрим как система работает (обычно смотрят времена отклика), через некоторое время увеличиваем нагрузку, опять смотрим на отклики. И увеличиваем до тех пор пока не увидим деградацию производительности (времена откликов резко идут вверх). Это и есть максивальная производительность системы
Но при определении периода ступенек, важно не брать слишком мало, система должна проработать на этой нагрузке
потом когда определяется максимум производительности, лучше сделать тест на стабильность (мин сутки), а то вдруг ты определил максимум но на этом максимуме система выдержит всего 2 часа


Anton
11.01.2017
13:17:04
Можно попробовать выделить типовые сценарии, абстрактно что-то наподобие: юзер залогинился, запросил список книг, выбрал книгу, купил книгу, ушел. И посмотреть как система будет себя вести при масштабировании нагрузки по этому сценарию.

Anatoliy
11.01.2017
13:17:10
Всем привет! А кто что может посоветовать для работы с конфигами? Причем не только чтение но и запись?

KrivdaTheTriewe
11.01.2017
13:17:30

Daniel
11.01.2017
13:18:02

Google

Anatoliy
11.01.2017
13:18:09
typesafe config
да его как раз и смотрю, там под него тоже всякие библиотечки сделаны. Но всё что там вижу направлено только на чтение

KrivdaTheTriewe
11.01.2017
13:18:43

Anatoliy
11.01.2017
13:19:13

Nikolai
11.01.2017
13:23:08

KrivdaTheTriewe
11.01.2017
13:33:39
@pomadchin спасибо за spire

Pp
11.01.2017
13:35:55
может быть кто-то может порекомендовать подписки в RSS на тему скалы?

Aleksey
11.01.2017
13:36:14

Pp
11.01.2017
13:36:16
мне например нравится ли хаои и мануэль бернхард, но я не шарю

KrivdaTheTriewe
11.01.2017
14:15:44
А кто-нибудь строил гистограммы канонично в скале без хешмапы мутабельной

Nikolai
11.01.2017
14:20:01
Иммутабельной хешмепой?))

KrivdaTheTriewe
11.01.2017
14:20:56
как нибудь это красиво завернуть в редьюс какой и чтобы оно в билдере мапы всё сообразило
чтобы не гонять туда - сюда

Dmitry
11.01.2017
14:21:20
помню сканом строил
на стриме
но думаю это не про это

Nikolai
11.01.2017
14:22:18

folex
11.01.2017
14:22:26
Иммутабельной хешмепой?))
trait GoodHisto[T] {
def makeHisto(data: T)
}
class HistoImpl[T]() extends GoodHisto[T] {
var histoManagerFactory = HistoManagerFactoryFactory.makeManagerFactory(mutable.Map.empty[String, T], ...)
...
}
:D

KrivdaTheTriewe
11.01.2017
14:23:40