Трекинг кода must-have в среде разработки. Но вот насколько нужен этот же инструмент в продуктиве? Тот, кто лишь кропотливо собирает логи скажет «ну его нафиг, мой ELK меня не подводит» и будет по-своему прав. До поры до времени.
Нет, логи, конечно, мощный инструмент. Но смотря только в них не увидишь неотлавливаемых ошибок или значений переменных, присвоенных в момент возникновения ошибки. Читайте в этом выпуске:
1. Rollbar
2. Raygun
3. Sentry
4. OverOps
5. Airbrake
6. BugSnag
7. StackHunter
8. VBATelemetry
9. Appenlight
1. Rollbar
Дашборд Rollbar
Пишут на своём сайте «Поймай ошибки если сможешь пока это не сделали за тебя пользователи». Ну что ж попробуем. Rollbar предоставляет облачный сервис и умеет работать с несколькими языками программирования благодаря вживлению своего SDK в контролируемое приложение.
Вживление кода Rollbar
На дашборде группирует ошибки, показывает итоговое количество. Не суперкосмическая техология, но позволяет увидеть ошибки из всего стека приложения. Почему-то на сайте они сравнивают себя с New Relic. Понимаю, что назначение схожее, но почему не сделаны сравнения для Appdynamics или Dynatrace — загадка.
Какие языки программирования и платформы поддерживаются
Не много, но и не мало: JavaScript, Angular, Node.js, Python, Ruby, Django, PHP, Clojure, .NET, Android, iOS, Haskell, Drupal, Rails и другие.
Возможности
Стандартный набор типа:
— отключить или скрыть определенные объекты мониторинга, о состоянии которых знаете;
— определить степень серьезности каждой ошибки и получить уведомление, если ошибка повторится;
— отправить любое событие члену команды, которое нужно решить, чтобы дашборд оставался девственно чистым.
И ещё есть интересная фича — выдача готовых параметров для повторения транзакции через curl.
Параметры запроса через curl
Интеграции:
- Datadog
- Flowdock
- Github
- Help Scout
- Logentries
- Logstash
- Mailgun
- PagerDuty
- Slack
- Trello
- Webhooks
Цены
Бесплатно до 5000 событий в месяц, до 100000 событий 41$, до 500 000 событий $124. Полный список цен можно посмотреть на сайте вендора.
2. Raygun
Дашборд Pulse
Raygun предлагает 2 облачные услуги: Real User Monitoring (aka Pulse) и Crash Reporting. Pulse контролирует пользовательские сеансы и выявляет проблемы с производительностью, по каждой из которых можно настроить оповещение. В нем есть отдельная панель мониторинга, которая информирует о времени загрузки страниц из конкретных стран, браузеров и устройств.
Crash Reporting контролирует работу самого приложения и показывает на дашборде диагностические отчеты и другие сопутствующие данные.
Дашборд Crash Reporting
Какие языки программирования и платформы поддерживаются
.NET, Android, Drupal, Go, iOS, JavaScript, Node.js, PHP, Python, Ruby, Unity и другие.
На всякий случай, если вы вдруг не заметили отсутствие в этом списке Java (не поддерживать которую сегодня вообще дурной тон): чтобы трейсить Java нужно добавить в приложение библиотеку Raygun4Java. Это позволит отправлять исключения прямо в дашборд Raygun. Если что, в документации Raygun есть описание как это делается.
Возможности
Raygun умеет группировать многократные ошибки. На дашборде можно отмечать тегами группы ошибок или их экземпляры для последующего формирования отчетов.
В каждой группе ошибок члены команды могут видеть обновления статуса, комментарии и другую информацию, а на дашборде показывается количество пользователей, затронутых каждой ошибкой.
Есть опция полнотекстового поиска, которая поможет быстро найти нужную ошибку. Ну и куда же без поддержки webhooks и отправки уведомлений сторонним системам оповещения.
Интеграции:
- Asana
- Assembla
- BitBucket
- Campfire
- HipChat
- Intercom
- JIRA
- PagerDuty
- Slack
- Trello
- Webhooks
- Zendesk
Цены
Raygun продаёт Pulse и Crash Reporting как 2 разных сервиса, за которые и платить нужно по-отдельности. Для безлимитной версии можно купить оба сразу.
Цена на Pulse начинается с $99/месяц за 100 000 пользовательских сессий в месяц. Следующий тарифный план — $198/месяц за 200 000 сессий, а за 500 000 сессий просят $495/месяц.
Цена на Crash Reporting начинается с $49/месяц за 25 000 ошибок и от максимум 5 приложений. За $149/месяц дают обрабатывать 250 000 ошибок от максимум 20 приложений, а за $499/месяц 3 000 000 ошибок от 50 приложений.
Ну, и есть супер-пупер энтерпрайз тариф для обоих сервисов, который стартует с $999/месяц за безлимитное количество сессий и событий.
3. Sentry
Нашел на Хабре несколько статей про эту штуку, даже штаб Навального её использовал для своего Жнеца. Sentry начинался как небольшой кусок кода, который превратился в полномасштабный инструмент мониторинга ошибок, вылову и дебагу ошибок в проде. Можно поставить у себя или заюзать облачную версию.
В дашборде можно видеть трассировку стека вызовов, определять URL каждой ошибки, параметры и информацию о сессии.
Дашборд Sentry
Какие языки программирования и платформы поддерживаются
JavaScript, Node.js, Python, Go, PHP, Ruby, C #, Objective-C и даже Swift.
Raven — это клиент Java для Sentry, он использует популярные библиотеки логирования для сбора и преобразования файлов логов. Библиотека берет эту информацию и отправляет данные в Sentry.
Возможности
Ошибки ловятся в режиме реального времени, каждая ошибка включает информацию о среде выполнения и данных пользователей. Если пользовательский опыт — ключевой источник данных для диагностики ошибок, Sentry может запрашивать у пользователей обратную связь каждый раз, когда они сталкиваются с ошибками.
Интеграции:
- HipChat
- GitHub
- Slack
- Trello
- Heroku
- Campfire
- JIRA
- PagerDuty
- GitLab
Цены
Для некоммерческого использования — нахаляву, но событий должно быть не более 10 000 в месяц. Для коммерческого использования цена колеблется в районе $26–$449/месяц для предела в 1 миллион событий в день. Для оценки количества событий есть 14-дневный триальник.
4. OverOps
OverOps помогает разработчикам понять когда, где и почему код ломается. Он фиксирует исключения и ошибки, и еще это единственное решение (рили другого такого не встречал), показывающее состояние переменной, вызвавшее его, через методы и машины. Если хотите узнать про продукт немного подробнее — на Хабре я как-то писал о нём. Из вариантов установки: on-premise, hybrid (БД у себя, аналитика в облаке), SaaS — есть из чего выбрать.
С помощью OverOps вы получите представление о фактическом коде, который был запущен в момент возникновения исключения или ошибки. Интересный инструмент для поиска, анализа и исправления ошибки.
Экран анализа ошибок OverOps
Какие языки программирования и платформы поддерживаются
OverOps поддерживает всех языки JVM: Java, Scala, Clojure, Groovy.
Агент OverOps устанавливается буквально за несколько команд в консоли. Он работает как Java-агент, поэтому нет необходимости в изменениях кода или сборки, нужно прицепить этот Java-агент к своей JVM.
Возможности
Для тех, кто предпочитает просматривать логи каждый раз при возникновении ошибки, инструмент вставляет в лог прямую ссылку на дашборд в OverOps с этой конкретной ошибкой. Прямо из лога, после перехода по ссылке, можно увидеть исходный код с трассировкой стека вызовов и значениями переменных, которые вызвали ошибку. В связке со Splunk или ELK будет удобно им пользоваться — посмотрите минутный видос на ютубе.
Из дашборда можно настраивать оповещения на основе частоты ошибок, фильтровать ошибки по приложению, местоположению кода, времени и т.д.
Интеграции:
- JIRA
- Slack
- HipChat
- PagerDuty
- Graphite
- Grafana
- Nagios
- Zabbix
- New Relic
- AppDynamics
- DataDog
Цены
Бесплатная версия есть только в виде триала. Прайсы на сайте они не выложили, если кому нужно — обращайтесь, могу узнать цену.
5. Airbrake
Airbrake — инструмент для для сбора и отслеживания исключений и ошибок в приложении. Каждая ошибка включает среду, в которой она произошла, когда она была впервые обнаружена, тип ошибки и другие детали. Встраивается в приложение в виде SDK. Сервис работает из облака.
Дашборд Airbrake
Какие языки программирования и платформы поддерживаются
Ruby, PHP, JavaScript, .NET, Python, Django, Node.js, iOS, Swift, Android, Go, Angular, Flask и другие.
Возможности
Airbrake показывает трассировку стека и метаданные каждой ошибки, группирует их по типу, пользователям и переменным среды.
Есть дашборд, который показывает когда впервые возникла каждая ошибка, чтобы понять возникла ли эта ошибка после накатки релиза или до него. Ошибки можно прикреплять к членам команды, чтобы потом было понятно кто несет ответственность за их исправление.
Интеграции:
- Assembla
- Bitbucket
- Campfire
- Flowdock
- GitHub
- GitLab
- HipChat
- JIRA
- Lighthouse
- Pivotal Tracker
- Slack
- Trello
- Webhooks
- Zapier
Цены
Дают 30-дневный триальник, но просят взамен данные карты. Имхо, для теста подойдёт.
Инструмент тарифицируется по количеству событий. Самый низкий тарифный план стоит $59/месяц и включает 10 000 ошибок в месяц в 5 приложениях. За 300 000 ошибок в месяц и безлимитное количество приложений попросят $129/месяц, и, наконец, 1 миллион ошибок в месяц и неограниченное количество приложений стоят $299/месяц.
6. Bugsnag
Bugsnag отслеживает ошибки и исключения внутри приложения и пытаться определить корневую причину и оценить влияние на пользователя. Искусственный интеллект в действии.
Дашборд Bugsnag
На панели инструментов дается обзор всех ошибок с возможностью отфильтровать неразрешенные. Он группирует ошибки, которые имеют аналогичное происхождение в коде, и помогает визуализировать и сравнивать различные тенденции ошибок с течением времени с графиками.
Дашборд с указанием индекса производительности для каждого релиза
Встраивается в приложение в виде SDK, работает в виде сервиса из облака. Bugsnag к Java-приложению можно добавить, используя Gradle, Maven или вручную. Также есть возможность добавить SDK, используя Spring и Spring boot.
Какие языки программирования и платформы поддерживаются
Android, Go, iOS, .NET, Node.js, PHP, Python, Ruby, Unity.
Возможности
На дашбордах можно скрывать ошибки до тех пор, пока они не будут соответствовать определённым вами условиям или отключить звук при возникновении ошибок, если они не важны. Каждая ошибка содержит данные о количестве затронутых пользователей и сколько раз это происходило.
Меню состояния ошибки дает дополнительную информацию: показывает ход ошибок, фид активности показывает ход изменений каждой ошибки с течением времени.
Цены
Бесплатный тарифный план поддерживает до 7500 ошибок в месяц для одного пользователя. Тарифный план для команды начинается с $29/месяц и доходит до $59/месяц за 150 000 ошибок в день для 5 членов команды. Чтобы узнать условия неограниченного корпоративного тарифный плана, нужно с ними связаться.
7. StackHunter
Stackhunter умеет извлекает данные из Log4J и Logback. Каждая ошибка включает в себя трассировку стека, HTTP-запрос, свойства JVM, атрибуты JMX и когда и где это произошло впервые. StackHunter наблюдает за неотлавливаемыми исключениями, а также с ошибками, зарегистрированными в Log4J и Logback. Устанавливается на вашем сервере.
Дашборд StackHunter
Какие языки программирования и платформы поддерживаются
Это инструмент, специально предназначенный для перехвата исключений Java. Он поддерживает JDK 6 или выше и требует наличия Servlet 2.5 или выше. Установка простая: нужно развернуть вstackhunter.war на веб-сервере.
Возможности
StackHunter отслеживает исключения, подключаясь к Log4J и Logback. Инструмент предлагает один веб-интерфейс, в котором можно просматривать все исключения.
На дашборде можно увидеть все исключения приложения, отфильтровать уникальные исключения или просмотреть, какие из них повлияли на пользователей или их сеансы. Аналогичные исключения группируются вместе.
Цены
Есть 30-дневный триальный период. Цены просят запрашивать у них напрямую. Если понадобится помощь с ценами — обращайтесь.
8. VBAtelemetry
Хоть это и не продуктивных приложений, а для сугубо персональных задач в области отладки макросов в пакете MS Excel, нельзя было не упомянуть эту полезную штуку. Работает в связке с Azure Insights. Помогает вылавливать ошибки выполнения макросов и следить за их производительностью. VBAtelemetry можно использовать бесплатно, потому что и у самого и у Azure есть соответствующие бесплатные тарифные планы. Для работы требуется установка небольшого агента.
Вставка ключа в код макроса
Производительность макроса в Azure Insights
Какие языки программирования и платформы поддерживаются
Как ни странно, но только VBA.
Возможности
Возможности инструмента можно перечислить по трём функциям:
TrackPageView. Контроль за формами и таблицами, которые открывает пользователь.
TrackEvent. Функция, которая определяет данные по каким событиям нужно отправлять в Azure Insights.
TrackError. Функция для отправки ошибок выполнения кода в Insights.
TrackMetric. Функция для контроля за производительностью. Измеряет время выполнения кода.
Интеграции:
- Azure Insights
Цены
Можно пользоваться бесплатно, но будет выскакивать всплывающее окно. Можно заплатить $39 за ключ и забыть об этом. Если купите от 20 ключей, они дают скидку в 50%. Необходимое количество ключей зависит от того, сколько экземпляров Azure Application Insights вы будете использовать. Если один — понадобится только один ключ.
9. Appenlight
Open-source и бесплатно. Инструмент трекает исполняемый код. Для работы требуется внедрение легковесного SDK. Сам сервер приложений поставляется в виде OVA-образа.
Интерфейс Appenlight
Какие языки программирования и платформы поддерживаются
Python, JavaScript, NodeJS, PHP, Ruby и другие. Java не поддерживается.
Возможности
Инструмент трекает ошибки в работе приложения, собирает стектрейсы, группирует ошибки, показывает медленные вызовы, выявляет зааффекченных пользователей. Поддерживается многопользовательский режим, ошибки можно назначать на конкретных пользователей.
Интеграции:
- Bitbucket
- Github
- Jira
- Slack
- HipChat
- Campfire
- Flowdock
- Webhooks
Цены
Полностью бесплатно.
У каждого инструмента есть свои плюсы и минусы. К счастью, вендоры дают триал и ничего не мешает попробовать тот или иной инструмент. Расскажите что используете для отлова ошибок: платное/бесплатное, своё/промышленное.
Автор: Anton Kasimov