Fork me on GitHub
#clojure-russia
<
2017-06-19
>
pavel.sergeev10:06:18

подскажите, есть ли в кложе какие нибудь тулы для работы с логами как с данными? Ну например, каждый лог мэсдж у меня это мэп, я хочу ui для фильтрации этого потока мэпов с возможностю схлопывать/расхлопывать, серчить по истории.

artemyarulin10:06:37

ну тут постили чуть выше отличную доку как этого добиться но внешними тузлами

artemyarulin10:06:47

http://telegra.ph/Loggirovanie-i-telemetriya-v-Clojure-06-15 вот дока но там больше про метрики, был не прав. ES + Kibana очень зачетный стек. Если попроще и хостед то рекомендую еще http://loggly.com

misha11:06:25

@pavel.sergeev за вечер на rum'e нахачь

pavel.sergeev11:06:00

да вот я об этом и подумываю 🙂

pavel.sergeev11:06:10

есть еще вот такой log viewer https://github.com/yogthos/log-viewer

misha11:06:20

нет бы скриншот в репу положить, а harold

misha11:06:40

latest commit 5 years ago омг кложа умирает, все либы протухшие™ 🔥 🔥 🔥

misha11:06:50

еще из свеженького: откуда мне знать, что contains? работает и на сетах тоже? hatred towards community!

artemyarulin11:06:46

Да ну эт реально фейл, самая наверная популярная ошибка у новичков:

> (contains? {:a 1 :b 2} :a)
true
> (contains? #{:a 1 :b 2} :a)
true
> (contains? [:a 1 :b 2] :a)
false

misha11:06:24

там же написано, что в векторах ищет по индексу

dottedmag11:06:57

@artemyarulin Я с кибаной нахлебался и никому её не рекомендую.

artemyarulin11:06:00

ну емае написано, ты еще скажи сорсы почитать там все написано. А вот реаельно как посмотреть есть ли айтем в векторе хрен - тонски вроде делал патч с find но не помню чем кончилось, по сей день как дурак (if (empty? (filter #(= % 10) items)))

andrewtropin13:06:07

artemyarulin: (some? #(= 10 %) items)

artemyarulin13:06:51

лучше спасибо

misha11:06:00

вот скажи, это реально хотя бы топ50 проблем новичка только взявшегося за кложу? :)

dottedmag11:06:15

Если у логов гибкая схема, то это ужас.

dottedmag11:06:51

Вот пример: было у лога поле строковое, а стало в новых логах числовое. Что будет делать ElasticSearch? Будет реджектить все записи.

misha11:06:28

а чо ты правда как дурак весь сиквенс проходишь вместо reduce + reduced ? troll

dottedmag11:06:50

Она нормально работает, если логи типа syslog: хост, процесс, приоритет и длинная строчка текстового поля.

dottedmag11:06:59

А если логи уровня приложения, то всё, тушите свет.

artemyarulin11:06:13

А чо тогда лучше?

dottedmag11:06:19

Да вот хз.

dottedmag11:06:47

Я одним глазом гляжу на https://github.com/oklog/oklog, но это такой просто "grep $pattern $datacenter".

artemyarulin11:06:00

@misha ну вот и да кста - даже здесь не прально написал, first забыл, в этом и косяк - а работал бы contains? то не было б проблемы

dottedmag11:06:19

Если хочется языка запросов по структурированным данным, то oklog не то.

dottedmag11:06:03

А без языка запросов сложно. Я пытался так грепать логи уровня приложения, и сложно писать регексп, когда тебе нужно найти строку -47 по конкретному пути в JSON.

artemyarulin11:06:35

омг нет, я лучше буду костыли на еластик навешывать чем вот эти костыли грепать 🙂

misha11:06:10

мне контейнс для вектора пригодился ровно 1 раз за 3 года, и я фолбекнулся на жаваскриптовый индексОф opieop

pavel.sergeev11:06:52

кмк, было бы здорово не грепать как раз, а писать простые предикаты на кложе

misha11:06:08

надо с датаскриптом и блекджеком написать тогда, с текстовым индексом поверх

dottedmag11:06:24

Можно переписать oklog на кложе и встроить туда греп по предикату.

artemyarulin11:06:38

епта вам шашечки или ехать?:)

misha11:06:19

что-то "нахачить за вечер" в венчурный b2b стартап за 20 минут превратилось

potapenko11:06:21

а я монгу сейчас для логов использую. и запросы тебе и UI - robomongo. И завести бесплатно базу за пять минут...

potapenko11:06:28

запросы правда на JS. но ведь удобно!

artemyarulin11:06:27

>запросы правда на JS. но ведь удобно! ну вот, осталось то понты - CLJS > JS, вот монго охиреет от запросов на пол метра жс troll

potapenko11:06:14

ну если из кложи - monger

potapenko11:06:37

мне нравится из robomongo по быстрому найти чего - я так и держу пару закладок с запросами к логам

artemyarulin11:06:26

а где монгу хостишь?

artemyarulin11:06:44

и она у тебя наружу как-то смотрит, как в нее заливать данные?

potapenko11:06:58

ну заведи пользователей

potapenko11:06:17

у меня есть пользователь на read-only, есть c полными правами

potapenko11:06:50

когда нужно глядеть или дать кому рыть логи - этим пользователем

artemyarulin11:06:57

а там у нее есть какое рест апи? Тащить монгодравйвер моветон для паблик сервисов

potapenko11:06:47

есть, но я не заморачивался

potapenko11:06:52

monger и вперед

artemyarulin11:06:01

а ок, не знал, погуглю, спасиб

potapenko11:06:02

не знаю как он шлет

artemyarulin13:06:37

чота не могу найти - как поискать неиспользованный иморт? [jonase/eastwood "0.2.4"] [venantius/yagni "0.1.4"] чота ничего не находят, правда у меня CLJS

artemyarulin18:06:17

дак оно само добавляет что нужно, мне надо было наоборот - убрать чо не надо уже. Или оно и то и другое делает?

artemyarulin13:06:53

вроде были какие-то тулзы

artemyarulin13:06:35

да, eastwood такое умеет но тока с CLJ, грусть

artemyarulin15:06:45

@malch о спасибо, хотя хотелось бы чтоб консольно можно было запустить

malch15:06:45

с этим сложнее 😊

misha16:06:40

или (-> f slurp tree-seq ... filter ...) kappa