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