Тестирование, несомненно, является одним из столпов разработки приложений.
Как и любой типичный кит, тестирование может разразиться ошибками и не прекращаться долгое время.
Но главный вопрос заключается в достаточности тестового покрытия — удастся ли отловить все ошибки в написанных тест-кейсах? Возможно, некоторые появятся только под пользовательской нагрузкой.
Для их выявления, как правило, детонируется запрос пользователя и далее активируется следующая цепная реакция: в руки попадает специалист службы поддержки, вторая линия поддержки и, если повезет, сообщение о нештатной работе.
разработчика.
Да, инцидент также может исходить от системы мониторинга APM (если она у вас, конечно, есть).
Но все эти вещи не позволят нам однозначно определить, какие значения принимали переменные до возникновения исключения.
В этом посте мы поговорим о решении, призванном помочь в таких ситуациях.
Устраивайтесь поудобнее.
Давайте поговорим о OverOps — решение для обнаружения ошибок в приложениях на Java, Scala, Clojure и Groovy. Покажу вам несколько скриншотов и расскажу об основных возможностях продукта.
Неслучайно во вступительной части говорилось о тестировании.
Ошибки.
проблемы, возникающие в производственной среде, не обязательно возникнут в среде разработки и тестирования.
А нагрузка реальной пользовательской активности может выбрасывать невиданные доселе исключения.
Суть OverOps заключается в следующем:
1) при запуске JVM рядом с ней запускается агент OverOps;
2) агент способен отслеживать возникновение исключений в коде (как обрабатываемых, так и необработанных);
3) при возникновении исключения агент удаляет дамп кучи и применяет его к декомпилированному байт-коду.
В результате вы сможете увидеть, какие значения принимали переменные до возникновения исключения.
Когда агент работает, поставщик заявляет, что его максимальные накладные расходы составляют 3%.
На нашем лабораторном стенде с легкой нагрузкой нам не удалось сильно приблизиться к этому показателю, поэтому пока поверим на слово.
Не знаю, как кому-то, а мне особенно нравятся монстры, которые периодически мелькают то тут, то там в интерфейсе.
Оказывается, у OverOps есть целый набор монстров , отдельные представители которых материализуются при возникновении соответствующих ошибок.
Забавно, правда?
В самом интерфейсе это выглядит примерно так:
Система периодически собирает снимки (т.е.
мы не увидим все ошибки, но увидим их количество).
Можно создать правила, например, «10 ошибок такого типа»: «сообщить здесь» («сообщить об ошибке в Jira», «опубликовать в Slack», «опубликовать в Twitter» и т. д.).
Полный список интеграций можно найти по адресу связь .
Вот пример моей тестовой интеграции с NewRelic. Подробности отображаются на вкладке Плагины и сопровождаются прямой ссылкой в OverOps, что, честно говоря, очень удобно:
OverOps может фильтровать сторонние библиотеки, чтобы исключить их из мониторинга.
В самом интерфейсе это выглядит примерно так:
Еще один функционал: прикрепление исходного кода извне, фильтрация ошибок, если они содержат персональные данные (настраивается через регулярные выражения).
Из небольших недостатков: они не умеют показывать тип объекта, если он унаследован от базового типа, а сигнатура метода принимает базовый тип.
Все возможные сценарии предусмотрены типом установки решения: SaaS, Hybrid, On-Premise. Сейчас, конечно, уже поздно говорить о том, что OverOps был бы очень полезен в высокий сезон — ведь именно в периоды повышенной нагрузки велики шансы отловить различные ошибки, не проявившие себя в другое время.
Но к предстоящим праздникам и соответствующему пику трафика все же стоит задуматься о тщательном мониторинге вашей розничной системы.
Пожалуйста, задавайте вопросы в комментариях.
А если задача требует чуть более вдумчивого подхода, наш консалтинг - как свет в окне в метель и метель , – всегда появляется в нужный момент. Автор статьи: Антон Касимов , архитектор систем управления, «Инфосистемы Джет».
Теги: #java #разработка приложений #тестирование ИТ-систем #мониторинг #разработка для электронной коммерции #тестирование с использованием #scala #clojure #Groovy #инфосистемы Jet #инфосистемы Jet #инфосистемы Jet #Инфосистемы Jet #Инфосистемы Jet #Инфосистемы Jet # Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет #Инфосистемы Джет jet #инфосистемыjet #инфосистемыjet #инфосистемыjet #инфосистемыjet #инфосистемыjet #инфосистемыjet
-
Исследование Саморазряда Аккумулятора
19 Oct, 24 -
Концепция Коворкинг-Центра
19 Oct, 24 -
Викиасария – Комедия Ошибок
19 Oct, 24 -
«Правило Нуля»
19 Oct, 24