Size: a a a

2020 March 10

SZ

Sergey Z in rannts
а как ты ищешь связь контекста одной части системы с другой частью системы? как отфильтровать логи из разных систем (разных серверов) по user_id?
понятно что погрепать можно что угодно, но удобно ли это?
источник

БС

Байт Словович in rannts
у меня есть request_id который проталкивается везде
источник

SZ

Sergey Z in rannts
а если из отфильтрованых по request_id логов тебе нужно ещё пофильтровать, ты продолжаешь дописывать греп?
источник

БС

Байт Словович in rannts
иногда да.. но в 99% случае мне грепа по request_id хватает.
источник

БС

Байт Словович in rannts
При этому на экране консоли умещается инфы в разы больше, чем эластик отображает. Я так и не осознал этот феномен..
источник

SZ

Sergey Z in rannts
а зачем тогда тебе вообще json логи? кто-то таки убедил? или потому что модно? не понимаю
источник

БС

Байт Словович in rannts
потому что иногда нужен контекст, который накапливается, как сказал серега.
Или например логировать входящие jsonчики проще через jsonчики.. Иногда надо отфильтровать по какому нить полю. В общем логи в jsonе полезны и нужны тоже.
источник

SZ

Sergey Z in rannts
а как ты понимаешь когда они нужны а когда нет? дублируешь вообще всё в двух форматах?
источник

БС

Байт Словович in rannts
да, у меня два хендлера. Один логирует в файл, другой в stdout в json формате.
Хендлер который логирует в файл, все словарики превращает в строки. jsonовский хендлер посылает словарики as is.
Плюс jsonовский засылает дополнительный контекст.
И еще могу сделать так:
logbook.info("Human string {a}", a=xxx, b=yyy)

При этом в файле b нету, а в json есть. Получается что human логи не загромаждаются всякой структуированной инфой. А вот когда она нужна, лезу в эластик и там нахожу что надо.
источник

БС

Байт Словович in rannts
Раньше что то подобное делал.. Вернее всё максимально детально логировалось в файл, а потом писался скрипт который бы из этих словарей делал пригодный для меня формат (грубо говоря выкидывал что не нужно).
источник

БС

Байт Словович in rannts
Эластик то в целом не плохая идея. Я не против этой идее, но меня бесят сложности конфигурации и тормоза.
Грубо говоря, тот же clickhouse + tabbix (на коленке написанный интерфейс бэкендщиком, который ваще js первый раз увидел, потому и он ужасный) мне как то милее и быстрее.
источник

БС

Байт Словович in rannts
Ну и когда вы логируете в эластик, уже нельзя писать логи в таком формате:
logbook.info("Something {} happended {} with {}", a, b, c)

обязательно надо менять на
logbook.info("Something {a} happended {b} with {c}", a, b, c)

Чтобы потом фильтровать не по вхождению в текст сообщения, а именно по полям.
источник

💭П

💭 Руслан Прохоров in rannts
источник

💭П

💭 Руслан Прохоров in rannts
источник

💭П

💭 Руслан Прохоров in rannts
@proofit404 я правильн опонял, что это переработанная и улучшенная версия доклада?
источник

AM

Artem Malyshev in rannts
Совсем чуть-чуть переработанная.
источник

AM

Artem Malyshev in rannts
По сути просто расшифровка.
источник

💭П

💭 Руслан Прохоров in rannts
Ну я имел ввиду ранную версию
источник

💭П

💭 Руслан Прохоров in rannts
На пайконф++ я не был, а доклад знаком :-)))(
источник

💭П

💭 Руслан Прохоров in rannts
Значит я видел его на раннтс :-)
источник