При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.
Спасибо за доклад! У вас хороший разбор достоинств и недостатков продуктов, но не описаны недостатки Sentry.
Кажется вы не очень хорошо разобрались в лицензировании и явно вводите в заблуждение насчет стоимости Graylog и Sentry. Из вашего доклада складывается впечатление, что Graylog - платный, с ограничениями, а Sentry - бесплатный, опенсорсный, без ограничений.
Graylog бесплатен, и также имеет открытый код: https://github.com/Graylog2/graylog2-server. Вы можете его скачивать и разворачивать и использовать на своих серверах без ограничений. Платным по желанию могут быть 2 вещи:
- Enterprise лицензия, дающая некоторые _дополнительные_ плюшки такие как например поддержка и доп аналитические механизмы
- хостинг сервера Graylog разработчиками. Вы избавляетесь от необходимости администрирования и поддержки серверов за некоторую плату
Теперь давайте посмотрим на Sentry: https://sentry.io/pricing/ Бесплатная лицензия - ограничение не более 5000 ошибок в месяц, тоже "бесплатно до определенного предела". И предназначена она только для разработки, ее нельзя использовать в готовых коммерческих продуктах. Далее в зависимости от количества логируемых ошибок от 30 до 900 долларов в месяц.
Ну и конечно, как и в случае с Graylog - это цены на хостинг сервиса сторонними людьми. Sentry тоже можно скачать и бесплатно использовать на своих серверах совершенно легально.
Ну и если говорить о недостатках - 1с совсем не Flask, где Sentry интегрируется в 3 строчки. Это долгий и кропотливый процесс. Сначала правильно собрать логи, потом обработать их и отправить.
Но теперь в 8.3.17 эту проблему решить будет проще. На сколько я понимаю будет единая точка обработки всех исключений + стек исключений из 8.3.15. Останется только дополнить сообщение сведения о пользователя или прочей доп. информацией.
"Из минусов Graylog: повторные уведомления. Когда вы получаете любую ошибку, которая возникла у пользователя, это хорошо. Но при групповом перепроведении документов вы получите к себе в Telegram поток сообщений"
Опять же, при всем уважении - это не минус, вы видимо не до конца разобрались со всеми опциями алертов и настроили алерты на каждое сообщение об ошибке. Aggregation Condition и существующие на маркете Aggregation плагины для алертов вы пробовали?
(2) Я очень рад увидеть от вас комментарий! Честно.
Было интересно до доклада пообщаться о логировании.
Да Sentry платный если ошибок больше чем 5000. Но если его использовать в облаке. Я его использую в облаке для навыков Алисы, например.
Если его использовать standalone - бесплатный, кроме допплюшек в виде всяких дашбордов. В этом и было отличие от Graylog - нет никаких 5 гб в сутки.
На счет Aggregation Condition - пробовал. К сожалению, мне не зашло. Именно из-за того, что надо настраивать. В Sentry отправил трейс - если трейс совпадает это одна и та же ошибка.
Я люблю Graylog за само логирование, мне он показался удобнее той же Kibana.
Например, у меня большая часть пользователей работает в документе "Заказ покупателя", "Реализация товаров". Ошибки возникают при заполнении данных на форме документов, печатных формах, проведении документа.
Как всё это залогировать? Если в модулях формы, модулях объектах, общих модулях на каждое действие - то это же будет АД потом обновлять на следующий релиз?
Пользователь запускает приложение, формируется два контекста – клиентский и серверный. Причем, это – стеки сообщений, чтобы не отправлять каждое сообщение, а отправлять их пачками.
Дальше по таймингу или по возникшему исключению контексты объединяются и отправляются в веб-сервис.
Поделись, как это работает более детально.
- Что за тайминг?
- как клиентские данные отправляются?
- фактически у вас некий общий перехватчик исключений верхнего уровня, и при попадании в его блок Исключения генерится отправка в веб-сервис
(7) Запускается приложение - подключается обработчик ожидания. Он отправляет накопленные данные раз в 2-3 минуты.
На счет перехватчика. Большая часть клиентских вызовов, в основном кнопки, выполняются в Попытка/Исключение. В исключении обрабатывается стек вызова, добавляется необходимая техническая информация и отправляется в Sentry