LINUX.ORG.RU

Unhandled errors на <language name>

 , ,


0

1

Всем привет.

Хотелось бы услышать мнение широкой аудитории по поводу портянок которые высыпаются в лог у приложений k8s.

При этом приложение не упало, и продолжило работать когда сбой приведший к появлению этой портянки был устранён.

Стоит ли возиться и побеждать всё это?

Что решает вывод стандартных сообщений вместо рандомных портянок с адресами памяти и прочим случайным контентом:

  • можно автоматически обработать лог и прислать алерт с явно обозначенной проблемой
  • разгружает всевозможную инфраструктуру сбора/хранения логов

Минусы:

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

Поскольку разговор предлагаю вести в самом широком смысле, каждый понимает постановку вопроса исходя из своего опыта, желательно правда приводить кейсы.

Ну вот у меня такой кейс:

  • Приложение (RPS = ~1000) не достучалось в клик, и высыпало 14К строк в лог. Сработали алерты, но пока открывалось окно с детализацией (например OpenSearch) проблема «рассосалась». В течении дня это происходит, скажем, до 10 раз.
Ответ на: комментарий от unclestephen

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

Try/catch это другое, это уже handled errors, но и они тоже будут собираться в sentry.

masa ★★
()

По сути проблемы сказать не могу, вопрос не понял.

Но если у тебя алерты срабатывают 10 раз в день, в любом случае это неправильно. Или надо алерты редактировать, или надо устранять причину, по которой они срабатывают.

vbr ★★★★★
()
Ответ на: комментарий от unclestephen

Это возможно, но это требует строжайшей дисциплины и высокого iq у каждого участника команды. Обычно, все эти факторы редко встречаются )

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

Chiffchaff
()
Ответ на: комментарий от George

Что-то из разряда «как заставить джаву не срать стектрейсами?». А как насчёт писать приложения так, чтобы они писали только информативные логи?

Нет ничего информативней стектрейса в 99% случаев. Тебе буквально пальцем показывают на строчку, где баг.

Ненавижу программы на Go, в которых приходится буквально грепать исходники по сообщению об ошибке, чтобы хотя бы предположить, где начинать искать.

vbr ★★★★★
()
Ответ на: комментарий от vbr

Только из всего километрового стектрейса тебе нужна буквально одна строчка, остальное - мусор. Никто не мешает и на go тебе везде вызывать panic(err) и читать вот это вот всё, но если ты собираешься отдавать свое приложение кому-то, то человекочитаемые ошибки все же лучше паники

George
()