Трекинг кода must-have в среде разработки. Но вот насколько нужен этот же инструмент в продуктиве? Тот, кто лишь кропотливо собирает логи скажет «ну его нафиг, мой ELK меня не подводит» и будет по-своему прав. До поры до времени.



Нет, логи, конечно, мощный инструмент. Но смотря только в них не увидишь неотлавливаемых ошибок или значений переменных, присвоенных в момент возникновения ошибки. Читайте в этом выпуске:

1. Rollbar
2. Raygun
3. Sentry
4. OverOps
5. Airbrake
6. BugSnag
7. StackHunter
8. VBATelemetry
9. Appenlight

1. Rollbar


image
Дашборд Rollbar

Пишут на своём сайте «Поймай ошибки если сможешь пока это не сделали за тебя пользователи». Ну что ж попробуем. Rollbar предоставляет облачный сервис и умеет работать с несколькими языками программирования благодаря вживлению своего SDK в контролируемое приложение.


Вживление кода Rollbar

На дашборде группирует ошибки, показывает итоговое количество. Не суперкосмическая техология, но позволяет увидеть ошибки из всего стека приложения. Почему-то на сайте они сравнивают себя с New Relic. Понимаю, что назначение схожее, но почему не сделаны сравнения для Appdynamics или Dynatrace — загадка.

Какие языки программирования и платформы поддерживаются


Не много, но и не мало: JavaScript, Angular, Node.js, Python, Ruby, Django, PHP, Clojure, .NET, Android, iOS, Haskell, Drupal, Rails и другие.

Возможности


Стандартный набор типа:

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

И ещё есть интересная фича — выдача готовых параметров для повторения транзакции через curl.

image
Параметры запроса через curl

Интеграции:

  • Datadog
  • Flowdock
  • Github
  • Help Scout
  • Logentries
  • Logstash
  • Mailgun
  • PagerDuty
  • Slack
  • Trello
  • Webhooks

Цены


Бесплатно до 5000 событий в месяц, до 100000 событий 41$, до 500 000 событий $124. Полный список цен можно посмотреть на сайте вендора.

2. Raygun


image
Дашборд Pulse

Raygun предлагает 2 облачные услуги: Real User Monitoring (aka Pulse) и Crash Reporting. Pulse контролирует пользовательские сеансы и выявляет проблемы с производительностью, по каждой из которых можно настроить оповещение. В нем есть отдельная панель мониторинга, которая информирует о времени загрузки страниц из конкретных стран, браузеров и устройств.

Crash Reporting контролирует работу самого приложения и показывает на дашборде диагностические отчеты и другие сопутствующие данные.

image
Дашборд 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 каждой ошибки, параметры и информацию о сессии.

image
Дашборд 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

Цены


Для использования на своих мощностях — нахаляву. Для коммерческого использования в облаке цена колеблется в районе $26–$449/месяц для предела в 1 миллион событий в день. Для оценки количества событий есть 14-дневный триальник.

4. OverOps


OverOps помогает разработчикам понять когда, где и почему код ломается. Он фиксирует исключения и ошибки, и еще это единственное решение (рили другого такого не встречал), показывающее состояние переменной, вызвавшее его, через методы и машины. Если хотите узнать про продукт немного подробнее — на Хабре я как-то писал о нём. Из вариантов установки: on-premise, hybrid (БД у себя, аналитика в облаке), SaaS — есть из чего выбрать.

С помощью OverOps вы получите представление о фактическом коде, который был запущен в момент возникновения исключения или ошибки. Интересный инструмент для поиска, анализа и исправления ошибки.

image
Экран анализа ошибок 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. Сервис работает из облака.

image
Дашборд 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 отслеживает ошибки и исключения внутри приложения и пытаться определить корневую причину и оценить влияние на пользователя. Искусственный интеллект в действии.

image
Дашборд Bugsnag

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

image
Дашборд с указанием индекса производительности для каждого релиза

Встраивается в приложение в виде 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. Устанавливается на вашем сервере.

image
Дашборд StackHunter

Какие языки программирования и платформы поддерживаются


Это инструмент, специально предназначенный для перехвата исключений Java. Он поддерживает JDK 6 или выше и требует наличия Servlet 2.5 или выше. Установка простая: нужно развернуть вstackhunter.war на веб-сервере.

Возможности


StackHunter отслеживает исключения, подключаясь к Log4J и Logback. Инструмент предлагает один веб-интерфейс, в котором можно просматривать все исключения.

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

Цены


Есть 30-дневный триальный период. Цены просят запрашивать у них напрямую. Если понадобится помощь с ценами — обращайтесь.

8. VBAtelemetry


Хоть это и не продуктивных приложений, а для сугубо персональных задач в области отладки макросов в пакете MS Excel, нельзя было не упомянуть эту полезную штуку. Работает в связке с Azure Insights. Помогает вылавливать ошибки выполнения макросов и следить за их производительностью. VBAtelemetry можно использовать бесплатно, потому что и у самого и у Azure есть соответствующие бесплатные тарифные планы. Для работы требуется установка небольшого агента.

image
Вставка ключа в код макроса

image
Производительность макроса в Azure Insights

Какие языки программирования и платформы поддерживаются


Как ни странно, но только VBA.

Возможности


Возможности инструмента можно перечислить по трём функциям:
TrackPageView. Контроль за формами и таблицами, которые открывает пользователь.
TrackEvent. Функция, которая определяет данные по каким событиям нужно отправлять в Azure Insights.
TrackError. Функция для отправки ошибок выполнения кода в Insights.
TrackMetric. Функция для контроля за производительностью. Измеряет время выполнения кода.

Интеграции:

  • Azure Insights

Цены


Можно пользоваться бесплатно, но будет выскакивать всплывающее окно. Можно заплатить $39 за ключ и забыть об этом. Если купите от 20 ключей, они дают скидку в 50%. Необходимое количество ключей зависит от того, сколько экземпляров Azure Application Insights вы будете использовать. Если один — понадобится только один ключ.

9. Appenlight


Open-source и бесплатно. Инструмент трекает исполняемый код. Для работы требуется внедрение легковесного SDK. Сам сервер приложений поставляется в виде OVA-образа.

image
Интерфейс Appenlight

Какие языки программирования и платформы поддерживаются


Python, JavaScript, NodeJS, PHP, Ruby и другие. Java не поддерживается.

Возможности


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

Интеграции:

  • Bitbucket
  • Github
  • Jira
  • Slack
  • HipChat
  • Campfire
  • Flowdock
  • Webhooks

Цены


Полностью бесплатно.

У каждого инструмента есть свои плюсы и минусы. К счастью, вендоры дают триал и ничего не мешает попробовать тот или иной инструмент. Расскажите что используете для отлова ошибок: платное/бесплатное, своё/промышленное.

Комментарии (7)


  1. igor_suhorukov
    29.07.2018 23:38

    Для трейсинга событий есть проекты:
    Zipkin
    Xray
    Jaeger


    1. AntoniusFirst Автор
      31.07.2018 15:19

      Про них тоже стоит написать


  1. Kolegg
    30.07.2018 08:10

    del


  1. MaximSF
    30.07.2018 13:58

    Для полноты картины, пожалуйста, дополните раздел о Sentry информацией о том, что «on premise» версия полностью бесплатна для любого использования — пруф, платным является только облачный сервис.


    1. AntoniusFirst Автор
      31.07.2018 15:22

      Поправил — спасибо!


  1. EvilBeaver
    31.07.2018 07:42

    Казалось бы, при чем здесь Навальный )) Без политоты и при всем уважении, во фразе "даже X использовал продукт Y", Х должен быть равен чему-то роде Google или другому уважаемому игроку мира IT, тогда вроде как продукт стоящий или, как минимум, достойный внимания.


  1. Urvdmih
    31.07.2018 15:18

    Не хватает сводной таблички в конце поста.