Fork me on GitHub
#clojure-russia
<
2017-10-26
>
rustam.gilaztdinov07:10:52

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

maxp08:10:24

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

rustam.gilaztdinov08:10:06

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

rustam.gilaztdinov08:10:30

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

igrishaev08:10:24

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

rustam.gilaztdinov08:10:48

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

igrishaev08:10:23

это уже много

rmuslimov08:10:40

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

rmuslimov08:10:07

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

rmuslimov08:10:22

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

dottedmag08:10:08

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

maxp08:10:12

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

maxp08:10:27

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

dottedmag08:10:43

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

maxp08:10:09

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

dottedmag08:10:17

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

dottedmag08:10:31

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

maxp08:10:43

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

dottedmag08:10:03

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

dottedmag08:10:36

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

dottedmag08:10:26

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

delaguardo08:10:53

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

dottedmag08:10:40

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

delaguardo08:10:25

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

a.dan08:10:47

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

delaguardo08:10:49

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

rustam.gilaztdinov08:10:53

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

rustam.gilaztdinov08:10:00

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

rustam.gilaztdinov08:10:57

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

delaguardo08:10:55

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

rmuslimov08:10:19

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

dottedmag14:10:56

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

rustam.gilaztdinov14:10:16

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

dottedmag14:10:22

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

Roman Liutikov15:10:54

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