clojure-russia

Работа и релокейт: #jobs-rus | #clojure-russia-offtop Телеграм-чат https://t.me/clojure_ru
rustam.gilaztdinov 2017-10-26T07:53:52.000237Z

Всем привет! Подскажите, у меня есть массив хттп-логов, чем бы мне их пропарсить? То есть я конечно знаю про clj-http и http-kit, но они же умеют только с запросами по факту их получения работать, а у меня тупо строками лежат.

maxp 2017-10-26T08:00:24.000085Z

А какая связь между парсингом неких логов и хттп клиентом/сервером?

rustam.gilaztdinov 2017-10-26T08:01:06.000214Z

тем, что запросы я могу на лету обрабатывать

rustam.gilaztdinov 2017-10-26T08:01:30.000249Z

а мои лежат в файлике

igrishaev 2017-10-26T08:04:24.000182Z

обычными строковыми операциями: разбиением, регулярками и тд

rustam.gilaztdinov 2017-10-26T08:04:48.000181Z

то есть готового ничего нет?)

igrishaev 2017-10-26T08:05:23.000006Z

это уже много

2017-10-26T08:05:40.000036Z

ELK есть, logstash имеешь толи ридеры, толи еще что-то которые уже настроены под стандартные логи

👀 1
2017-10-26T08:06:07.000195Z

поднимаешь, запускаешь, смотришь в графики

2017-10-26T08:06:22.000108Z

и все это бесплатно 🙂

igrishaev 2017-10-26T08:06:43.000233Z

https://github.com/pbogdan/ngx-top

dottedmag 2017-10-26T08:19:08.000385Z

@rustam.gilaztdinov Можно взять и вызвать какие-нибудь потроха из Tomcat, но там ужасно императивно-объектный API

maxp 2017-10-26T08:24:12.000174Z

@rustam.gilaztdinov если брать из файла построчно и обрабатывать, то получится почти как на лету 🙂

maxp 2017-10-26T08:24:27.000152Z

но если серьезно, то что хочешь получить-то на самом деле?

dottedmag 2017-10-26T08:24:43.000331Z

@maxp Набор карт с запросами, конечно.

maxp 2017-10-26T08:25:09.000033Z

Да фиг пойми что надо человеку с такими странными формулировками.

dottedmag 2017-10-26T08:25:17.000173Z

@rustam.gilaztdinov Мегаидея: открываешь файл, сокет, и пишешь файл в сокет 😄

dottedmag 2017-10-26T08:25:31.000293Z

А с другой стороны сокета - хоть clj-http, хоть http-kit.

maxp 2017-10-26T08:25:43.000249Z

ну и тут тролли и накинулись...

dottedmag 2017-10-26T08:26:03.000147Z

А что поделать, если джавовые библиотеки такие негибкие?

dottedmag 2017-10-26T08:29:36.000320Z

В принципе, из HTTP-парсера в Tomcat можно вытянуть нужные данные и отформатировать карту запроса, но кода получится достаточно много.

dottedmag 2017-10-26T08:33:26.000248Z

Или из Netty можно вызвать HttpObjectDecoder, но на выходе опять будет дерево объектов, на этот раз netty-овое.

2017-10-26T08:36:53.000189Z

регуляркой проще кмк

dottedmag 2017-10-26T08:39:40.000287Z

Теперь у тебя две проблемы 😄

➕ 1
2017-10-26T08:41:49.000487Z

@rustam.gilaztdinov а в каком виде логи? можешь пример кинуть?

2017-10-26T08:42:25.000368Z

да ладно) регулярок бояться - на перле не писать)

😆 1
rustam.gilaztdinov 2017-10-26T08:52:53.000281Z

Такая вырвиглазная штука

rustam.gilaztdinov 2017-10-26T08:53:00.000168Z

Ну и писать на это регулярки так себе затея

rustam.gilaztdinov 2017-10-26T08:53:57.000262Z

ну и хочется каким-то хттп(?) парсером вот это все привести в удобоваримый вид достать хочу разного из этого

rustam.gilaztdinov 2017-10-26T08:54:04.000150Z

^ @delaguardo

2017-10-26T08:54:55.000167Z

жуть какая) регулярка точно не варик))

2017-10-26T08:55:19.000162Z

так а зачем на лету это делать?

a.dan 2017-10-26T08:55:19.000516Z

https://github.com/aroemers/crustimoney

a.dan 2017-10-26T08:55:47.000191Z

как то так будет приятней

dottedmag 2017-10-26T14:01:56.000465Z

@rustam.gilaztdinov Мне джависты посоветовали дёрнуть HttpRequestParser из apache httpcomponents.

dottedmag 2017-10-26T14:02:22.000329Z

А для cljs можно взять нгинксовый http-parser, у него есть nodejs-биндинг

rustam.gilaztdinov 2017-10-26T14:05:16.000146Z

Спасибо, посмотрю

2017-10-26T15:57:54.000361Z

Движуха в Киеве