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

Возможности

Source maps: ошибки продакшена в вашем исходном коде

Продакшен-сборки минифицированы, и сырой стек-трейс указывает на искажённые имена в бандле. Загрузите source maps, которые сборка и так создаёт, — и каждый фрейм будет показан как исходный файл, строка, колонка и функция.

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

Source maps

Читаемый стек без публикации кода

  • Исходные файлы и строки

    Фреймы расшифровываются автоматически на страницах ошибки и инцидента, вместе со строками исходника вокруг упавшей.

  • Плагин для вашего сборщика

    Один плагин генерирует и загружает карты прямо во время сборки — для Vite, Rollup, webpack, Rspack и esbuild. Отдельный шаг в CI поддерживать не нужно.

  • Привязка к релизу

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

  • Стабильная группировка

    Фреймы расшифровываются до группировки ошибок, поэтому один и тот же баг остаётся в одном инциденте, хотя каждая сборка переименовывает минифицированные файлы.

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

Настройте source maps

  1. 1

    Задайте релиз в SDK

    Передайте в init релиз: версию, git-коммит или номер сборки, который однозначно определяет один деплой.

  2. 2

    Добавьте плагин сборщика

    Укажите тот же релиз и персональный токен, который хранится в секретах сборки. Карты загрузятся во время сборки.

  3. 3

    Читайте расшифрованные фреймы

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

vite.config.ts
import { defineConfig } from 'vite'
import { sourcemaps } from '@buglapse/bundler-plugin/vite'

export default defineConfig({
  plugins: [sourcemaps({
    url: 'https://app.buglapse.com',
    authToken: process.env.BUGLAPSE_AUTH_TOKEN,
    org: 'acme',
    project: 'acme-web',
    release: process.env.BUILD_RELEASE,
  })],
})

Подробнее

Сопоставление и безопасность

Как фрейм находит свою карту

Расшифровка зависит от точного совпадения двух вещей: релиза, проставленного на ошибке, и имени минифицированного файла, на который указывает фрейм. Если что-то отличается, фрейм просто остаётся как есть — это не считается сбоем. Поэтому, когда стек остался минифицированным, первым делом проверьте, что сборка и SDK используют одну и ту же строку релиза. Без плагина карты можно загружать из CI через API.

Исходники остаются приватными

Карты загружаются в Buglapse и браузерам не отдаются, поэтому публиковать их рядом с бандлами не нужно. Загрузка авторизуется персональным токеном с отдельным правом доступа. Он не связан с DSN проекта и должен лежать только в секретах сборки или CI, но не в клиентском коде. На тарифах со ссылками на код фреймы также ведут к файлу в вашем репозитории на GitHub или GitLab.

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

Сравнить все тарифы
На каждом тарифе
Free Pro Team
Source mapsВключеноВключеноВключено
Максимальный размер source map10 МБ30 МБ50 МБ
Ссылки из стека на код в репозиторииВключеноВключеноВключено

Вопросы

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

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

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

Написать нам

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

Какие сборщики поддерживаются?
У плагина есть точки входа для Vite, Rollup, webpack, Rspack и esbuild. Фреймворки на webpack, например Next.js, используют вариант для webpack.
Нужно ли выкладывать source maps в открытый доступ?
Нет. Они загружаются в Buglapse во время сборки, а из файлов, которые вы деплоите, их можно убрать.
Почему стек-трейс остался минифицированным?
Почти всегда потому, что релиз ошибки не совпадает с релизом, для которого загружены карты, или отличается имя файла. Используйте одно значение релиза в обоих местах.

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

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

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

Подробнее: Мониторинг ошибок

JavaScript

Мониторинг ошибок, трейсинг, логи и реплеи сессий для браузерного JavaScript с любым фреймворком.

Подробнее: JavaScript

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

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

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