Перейти к содержимому

Возможности

Мониторинг ошибок, который превращает шум в инциденты

Buglapse ловит исключения в браузере и в Node.js, группирует их по fingerprint и показывает стек-трейс, хлебные крошки, релиз и пользователя у каждого события, а по инциденту в целом — шаги, которые обычно к нему приводят. Вы видите баг, а не десять тысяч его копий.

Все возможности Buglapse

acme-web / WEB-42
WEB-42Не решенаproductionweb@2.14.0 Назначена AI-агенту

TypeError: Cannot read properties of undefined (reading 'id')

События
1 284
Пользователи
312
Впервые
3 ч назад
Последний раз
2 мин. назад
src/checkout/useCart.tsinapplyCouponстрока 48:31Ваш код
46export function applyCoupon(cart: Cart, code: string) {
47 const coupon = cart.coupons.find(c => c.code === code)
48 return pricing.discount(cart.total, coupon.id)
49}
src/checkout/CheckoutForm.vueinonSubmitстрока 112:9Ваш код
node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.jsincallWithErrorHandlingстрока 199:19

Мониторинг ошибок

Всё, чтобы разобраться в ошибке

  • Один инцидент вместо потока

    Одинаковые ошибки схлопываются в один инцидент со счётчиками событий и пользователей, датами первого и последнего появления. У каждого — короткий ключ вроде WEB-42, который удобно упомянуть в чате или коммите.

  • Читаемый стек-трейс

    Source maps возвращают минифицированные фреймы к вашим файлам, строкам и колонкам, с соседними строками исходника. Цепочка причин ошибки тоже сохраняется.

  • Что было до ошибки

    Клики, навигация, запросы и console перед ошибкой у каждого события, а по всему инциденту — общие шаги, которые к ней ведут. Плюс релиз, окружение, браузер, ОС, устройство и пользователь.

  • Решить, игнорировать, объединить

    Решённый инцидент сам откроется снова, если ошибка вернётся. Шум можно игнорировать по условию, дубликаты — объединять, а искать — с фильтрами по релизу, браузеру или пользователю.

Как это работает

От первой ошибки до разобранного инцидента

  1. 1

    Подключите SDK

    Вставьте script-тег или установите пакет для браузера или Node.js и вызовите init с DSN проекта. Необработанные ошибки начнут приходить сразу.

  2. 2

    Отправляйте пойманные ошибки

    Ошибки, которые ваш код обрабатывает сам, уходят в Buglapse одним вызовом captureException — вместе с хлебными крошками, собранными к этому моменту.

  3. 3

    Разберите в дашборде

    Откройте инцидент, прочитайте расшифрованный стек, посмотрите, кого и в каком релизе он затронул, затем решите его или передайте коллеге либо AI-агенту.

checkout.ts
import { captureException } from '@buglapse/browser'

try {
  await submitOrder(cart)
}
catch (error) {
  captureException(error)
}

Подробнее

Как работают группировка, сценарии и регрессии

Группировка по fingerprint

Когда приходит исключение, Buglapse строит fingerprint из типа ошибки и фреймов вашего собственного кода — без номеров строк и без фреймов сторонних библиотек. Если пригодного стека нет, берётся сообщение, в котором переменные части — числа, идентификаторы, адреса почты, даты — заменены заглушками. Source maps применяются до группировки, поэтому новая сборка не раскалывает старый инцидент надвое. На тарифах со своей группировкой шаблон fingerprint можно изменить, например чтобы разделить одну ошибку по окружениям.

Сценарии: шаги до ошибки

Buglapse сравнивает хлебные крошки последних событий инцидента и находит до трёх сценариев — цепочек действий пользователя (клики, ввод, переходы), которые повторяются перед ошибкой, с ответами системы между ними: запросами и выводом console. Из разных сессий ничего не склеивается: у сценария видно, какая доля событий прошла его в точности и за сколько секунд до ошибки случился каждый шаг, а пример — событие с реплеем или трейсом — открывается с подсвеченными шагами. Идентификаторы в адресах и сообщениях обобщаются, поэтому заказ 123 и заказ 456 — один шаг. Работает и с крошками от Sentry SDK. Если общего пути у событий нет, панель так и скажет.

Регрессии и всплески

Решённый инцидент, получивший новое событие, открывается снова как вернувшийся, и команда получает алерт. Игнорируемый инцидент молчит, пока не выполнится его условие. Когда всплеск съедает месячную квоту, Buglapse сэмплирует поток, а не обрезает его, и всегда сохраняет первые события каждого нового инцидента — новый баг не потеряется в шуме старого.

На каждом тарифе

Сравнить все тарифы
На каждом тарифе
Free Pro Team
Ошибки в месяц5 00025 000150 000
Ошибки и инциденты14 дней30 дней90 дней
Своя группировка и слияние инцидентовНе включеноВключеноВключено

Вопросы

Частые вопросы

Остались вопросы?

Напишите нам — поможем с подключением, тарифом или self-hosted.

Написать нам

или на почту hello@buglapse.com

Какие платформы поддерживает мониторинг ошибок?
У Buglapse свои SDK для браузера и для Node.js. Браузерный SDK работает с любым фреймворком: он подключается к странице, а не к конкретной библиотеке. Приложения, где уже стоит официальный Sentry SDK, могут отправлять события в Buglapse, сменив DSN.
Как отсечь шумные ошибки?
Входящие фильтры отбрасывают известный шум до сохранения, фильтр по origin принимает события только с ваших доменов, а инцидент можно игнорировать, пока он не станет хуже. Одинаковые события подряд SDK дедуплицирует сам.
Как считаются ошибки?
Каждое сохранённое исключение идёт в месячную квоту ошибок организации, общую для всех её проектов. Квота и срок хранения по тарифам — в таблице выше.

Смотрите также

Source maps

Минифицированный стек-трейс превращается в ваши исходные файлы и строки.

Подробнее: Source maps

Реплеи сессий

Посмотрите, что видел пользователь перед ошибкой; поля ввода маскируются по умолчанию.

Подробнее: Реплеи сессий

AI Autofix

AI-агент находит причину ошибки в вашем репозитории и открывает draft pull request.

Подробнее: AI Autofix

Готовы увидеть, что на самом деле происходит в вашем приложении?

Создайте проект на бесплатном тарифе и отправьте первое событие за пару минут.

Остались вопросы? Напишите на hello@buglapse.com