Vladimir
Что будет если ты в него шлешь столько данных, что ему поплохело?
Sergei
с TCP-сокетами сислог-отправитель архитектурно приспособлен уметь в буферизацию, ретраи и т.п.
Sergei
то есть задача нихуя не решена.
Mark ☢️
Vladimir
Dmitrii
А зачем вам гарантированая доставка для логов?
Mark ☢️
Dmitrii
Это же не WAL для финансов
Mark ☢️
Vladimir
Vladimir
Mark ☢️
Dmitrii
Vladimir
Но вот чтоб сислог не вешал приложение - нужно
Mark ☢️
պլհկ
Вешает
Mark ☢️
С удп точно
Vladimir
И как ?
Кроме ситуации совсем сдохшего железа оно тебе когда нибудь вернёт управление. А сислог может и не вернуть
Sergei
Пример?
например когда я работал в поисковиках, логи пользователей (и расширенные логи ранжирования) были чуть ли не самым важным что можно было придумать. потеря 0.05% логов уже вызывала вопли со стороны статистики
Dmitrii
Dmitrii
Это задача приложения
Sergei
Sergei
теряла. хз как щас.
Dmitrii
Ну слушай, кластер кафки уж явно поустойчивее будет
Mark ☢️
Sergei
и потом этих сообщений у тебя нет, вообще нигде.
Dmitrii
Dmitrii
Надо гарантию — кластер рэбита и так далее
Mark ☢️
Sergei
писать файлы, ротировать и в момент ротации (или позже) аплоадить в хадуп/архивный сторадж по результатам выходило надежнее.
Dmitrii
Правда там пошардить придется
Sergei
Dmitrii
Не кафкой едины
Sergei
вариантов хватает, я не спорю
Sergei
но разве это проблема именно приложения - встраиваться в пайплайны обработки событий? приложение должно уметь отправлять в кафку, в хуявку, в хадуп, в реббит, агрегировать это все и отправлять в графит?
Sergei
IMHO, задача приложения просто выплюнуть все нужные данные туда, где те, кому интересно, могут их подобрать. и приложение должно сразу же забыть о данных после того как выплюнуло.
файл, за которым смотрит кто-то другой подходит здесь отлично.
Dmitrii
Ну вот например в рэбите можно было бы сбоку подсосаться через фанаут схему
Dmitrii
Т.е. насирать можно в один фанаут а дальше раутингом все сделать
Mark ☢️
Sergei
Посему файл то, епт
он локально, близко, примитивный рабочий интерфейс, не требует НИЧЕГО, кроме файловой системы.
Dmitrii
Внутри рэббит сам тебе запилит копию сообщения а дальше делай топик и подписывайся на него. Надо гарантию — делай еще уровень через очереди.
Mark ☢️
Mark ☢️
Пермишшены
Mark ☢️
И прочая хуита
Mark ☢️
И да, в линупсе врайты зависают если пейджкеш переполнен
Sergei
А ротация и фсинки ?
ротация необязательна даже, во многих кейсах можно тупо транкейтить файлы (если объемы единичных write'ов невелики)
Mark ☢️
Dmitrii
@spuzirev у нас в конторе кластера рэббита вообще на разных материках находятся. Схема фанаутов, топиков и очередей для приложений на этой шине ханимает несколько страниц документации.
Sergei
печаль в том что с файлами все равно надо учиться работать, если мы шлем это в раббиты/кафки
Mark ☢️
И да. Если логи по факту нужно отдавать в сеть то срание на диск ни к чему
Sergei
потому что раббиты и кафки в определенный момент могут быть легко недоступны.
Sergei
а логи надо сохранять
Mark ☢️
Dmitrii
Смотри, у нас схема например такая что если выходит кластер в Европе из строя то кластер в Америке просто накапливает у себя. Америка работает только с HA Америки
Sergei
Dmitrii
Это 10 строк кода )
Mark ☢️
Sergei
обработка буферизации сообщений, которые не плюнулись в раббит?
Dmitrii
Ну ладно, еще fail safe драйвер с раундробином для выбора ноды. Еще +100
Mark ☢️
Прога срет в юникссокет в сислогный демон который уже например срет в рабит или куда там надо
Dmitrii
У нас кстати fail safe драйвер тоже запилен
Mark ☢️
Вернее 10 прог все срут в сислог. По СТАНДАРТНОМУ протоколу
Dmitrii
Такого чтобы прилег весь кластер в одном из регионов... Ну если весь регион недоступен то у тебя проблемы гораздо больше чем отсутствие логов
Mark ☢️
Без выебонов. Хочешь буфферизовать логи ? Делай это в своем хитровыебанном сислоге
Sergei
Sergei
Mark ☢️
Рантайм прио в тхреаде и млокалл
Dmitrii
Короче на самом деле дискуссия ни о чем пока не определятся критерии дюрабилити для логов
Sergei
Mark ☢️
Sergei
Обоснуй
если UDP - то мы теряем евенты.
если TCP - то мы вынуждены уметь обрабатывать ситуацию, когда мы пишем бёрст логов, а с той стороны не успевают вычитывать. буфера ОС нам будет мало.
Mark ☢️