Хоук ― трекер ошибок в ПО на замену Sentry

Всем привет. Меня зовут Петр, я основатель клуба веб-разработки CodeX. Клуб зародился в ИТМО и сейчас состоит из выпускников и студентов разных университетов. Речь пойдет об одном из наших open source инструментов ― трекере ошибок Хоук. Его релиз состоялся в непростой момент — 22 февраля 2022 года. Тогда платежная система оказалась недееспособна, и глобальная экспансия провалилась. Но в этом году Хоук снова расправил крылья — сервис пришел на замену мастодонтам, заблокировавшим всех российских пользователей. Расскажу, как мы его развиваем.

О команде, продукте, истории релиза, проблемах

CodeX — команда open source разработчиков. Мы пишем библиотеки и создаем из них продукты. Первый крупный релиз, визуальный редактор Editor.js, на сегодняшний день имеет 29к старов и 110к скачиваний в неделю. Второй — Хоук. Он нужен, чтобы понимать, корректно ли работает приложение. Ошибки и исключения отлавливаются в рантайме и отправляются в систему, разработчик получает уведомления и детальные отчеты. Около двух лет назад на Хабре мы уже рассказывали о его функциях и архитектуре в этой статье.

Команда CodeX

Команда CodeX

Для CodeX это был первый проект с монетизацией. Глобальный релиз требовал международного эквайринга. Задача не сильно сложная. Но, как известно, Stripe с российскими компаниями никогда не работал, а наше юрлицо российское. Поэтому нам нужно было сделать терминал, который умеет принимать платежи в любой валюте, конвертировать их и зачислять на рублевый счет. При этом у покупателя цена должна отображаться в местной валюте, и SMS он должен получить в своей валюте. На реализацию такой платежки у нас ушел почти год, и к февралю 2022 все было готово. А уже через месяц карета превратилась в тыкву.

f11cf232f75ff9c92cd919f3756b83d5.jpeg

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

В этом году все изменилось. На российском рынке возник спрос на аналог Sentry, Rollbar, TrackJS, Glitchtip ― с локализованной инфраструктурой и поддержкой. Хоук стал тем сервисом, на который теперь переходят российские компании, а мы сфокусировались на том, чтобы локализация была не единственным преимуществом — небольшой командой делаем сервис удобнее и полезнее.

Зачем нужна локализация инфраструктуры

Есть немало компаний, имеющих технические и юридические требования по хранению и обработке данных только на территории России. Для таких компаний мы подготовили специальную версию, где все от баз данных до DNS обслуживается в России. Это позволяет защититься от рисков, связанных с неполадками или блокировками на стороне зарубежных провайдеров. 

Некоторые команды рассматривают альтернативу в виде развёртывания self-hosted версии Sentry. Однако как разработчики схожего продукта мы знаем, сколько сервисов необходимо для его полноценной работы, насколько сложно поддерживать их стабильность и связанность. Эти сервисы должны быть не только корректно настроены, но и постоянно доступны, масштабируемы и устойчивы к сбоям. Просто запустить всё в Docker недостаточно — для достижения приемлемого уровня производительности и отказоустойчивости понадобится мощный сервер и значительные ресурсы DevOps, чтобы обеспечить их надёжность, координацию и своевременное обновление. 

Можно также поднять GlitchTip, который является форком старой версии Sentry. Он менее требователен к ресурсам. Однако у него есть свои ограничения и проблемы, связанные с устаревшей архитектурой и функциональностью. Кроме того, ответственность за его доступность и обслуживание полностью ложится на команду. Таким образом, несмотря на кажущуюся экономию, self-hosted решения в большинстве случаев обходятся дороже и сложнее в поддержке, чем использование SaaS-версии.

5e6b0470759431c77ee7a5b19d936aaf.png

Sentry уходит ― Хоук приходит

Следующий толчок развития Хоука произошел уже по инициативе Sentry. 11 сентября 2024 года американская компания начала блокировать российские команды и пользователей. Это стало реакцией на новые санкции, введенные министерством финансов США против России, которые были объявлены 12 июня 2024 года.

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

Интегрировать Хоука просто — надо зарегистрировать проект и подключить Catcher (наш SDK) в свой код. Для тех, кто не хочет трогать код, мы добавили поддержку Sentry Envelope — формата присылаемых данных. Теперь для переезда на Хоук достаточно поменять одну строчку DSN в конфигурации Sentry SDK.

0d3d08c0e57c0a88de11ae4517da302f.png

Последние обновления

Сейчас мы занимаемся расширением списка интеграций, разрабатываем новый интеллектуальный модуль уведомлений и чиним баги. По запросам клиентов добавляем новые SDK — недавно вышли пакеты для PHP Symfony, Nuxt, FastAPI, Flask. 

Хоук состоит из десятков пакетов, 40 репозиториев — все они имеют открытый исходный код. Каждый разработчик может внести свои предложения и улучшения любой из частей проекта — SDK, клиента или воркеров. Мы планируем развивать open source комьюнити Хоука на основе опыта работы с большим сообществом Editor.js. Уже сейчас вместе с командой CodeX новые интеграции в качестве учебных проектов разрабатывают в том числе участники нашей лаборатории в ИТМО. 

Напишите в комментариях, на какой трекер ошибоквы перешли после ухода Sentry, какие у этого подхода плюсы и минусы.

© Habrahabr.ru