170 похожих чатов

Коллеги, вопросик. А как реализовать логгер response body, но при

этом удалить оттуда часть полей? Есть что-то готовое, что может скажем на 20к rps работать без особых проблем...?

17 ответов

35 просмотров

Мне тоже интересно кста

А вы точно смогли сделать такой логгер? А что если вы возвращаете файл или 1000 объектов каждый раз? У вас бесконечные диски для логов?

@IlyaKaznacheev @onokonem help дядьки

Что значит "смогли сделать"? Перечитайте вопрос) Диски как раз не бесконечные, поэтому и вопрос. Ну и плюс секурность местами.

Александр Костюченко
Что значит "смогли сделать"? Перечитайте вопрос) ...

Просто не печатать response, на кой хрен он нужен в логах.

Vadim
Просто не печатать response, на кой хрен он нужен ...

Я говорю это так как сам делал логгер, который скрывал сенсетианые данные, толкну от этого респонса просто нет.

Александр Костюченко
@IlyaKaznacheev @onokonem help дядьки

А что вам надо, секреты вырезать? Это можно на уровне коллектора сделать, но не факт, что столько потянет

Ilya Kaznacheev
А что вам надо, секреты вырезать? Это можно на уро...

Да, секреты и часть тяжёлых полей. Я не пробовал, но мне кажется проц и гц захлебнутся

Александр Костюченко
Да, секреты и часть тяжёлых полей. Я не пробовал, ...

Ну мне кажется что в такой постановке они в любом месте захлебнутся. Попробуйте пойти от обратного, и логгировать только нужные поля. Если у вас 20К рпс, вряд ли кто-то будет сидеть и читать все поля в каждом запросе

Ilya Kaznacheev
Ну мне кажется что в такой постановке они в любом ...

Вы всё верно говорите. А какой алгоритм получится этого всего? Ну т.е хендлер записал бади во writer,а что дальше...?

Не знаю

Можно попробовать обрабатывать и логировать ответ nginx. Очень любопытно: какая цель логирования всех ответов?

В общем, более-менее тривиально если нет запроса на риалтайм. Встроится каким-нибудь интерцептором или мидлтварью в точку, где TLS уже отработал, проверить размер тела по заголовку и если он попадает в ожидаемые границы, то асинхронно считать его до конца, сжать и сложить в опративку. Далее по таймеру или по наполнению регулярно дампить эти данные - куда не суть важно, значимеем батчинг, чтобы размер батча бодро бежал по проводам. Не забыть реализовать backoff: если буфер уже полный и не успевает дампиться, то, например, просто выбрасывать самые старые сообщения и использовать новые (для чего складывать бы изначально неплохо в какое-то дерево, типа BST с приколами). Синхронизировать через RWLock.

The Zazaeil
В общем, более-менее тривиально если нет запроса н...

Другой типичный вариант: иметь два буфера (текущий, прежний) и атомарно менять ссылку между ними. Прежний буфер сериализовать и дампить, это если надо оптимизировать под быструю запись без конфликтов с чтением. Тут бэкофф будет сложнее чуть, а само переключение надо сделать через atomix exchange.

эту статью видели? https://dev.to/mizutani/zlog-secure-logger-in-go-to-prevent-output-of-sensitivesecret-values-394d

Максим Федоров
эту статью видели? https://dev.to/mizutani/zlog-...

сложность именно в неопределенном теле респонса?

Кафка не подходит?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта