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

Платформы

Мониторинг ошибок и трейсинг для Node.js

Установите один пакет и вызовите init с DSN проекта. Buglapse сообщает о необработанных исключениях, трассирует каждый входящий запрос и показывает, когда синхронный код останавливает процесс.

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

Node.js

Что даёт SDK для Node.js

  • Необработанные исключения и HTTP-ошибки

    Падения и необработанные отклонения промисов отправляются до завершения процесса, а неудачные исходящие запросы фиксируются как ошибки.

  • Трейс на каждый запрос

    Каждый входящий запрос становится корневым спаном с именем из метода и пути, под ним — исходящие HTTP-вызовы и ваши собственные спаны.

  • Блокировки event loop

    Огромный JSON.parse или синхронный вызов файловой системы останавливает все запросы сразу, но ошибку не бросает. Buglapse замечает такие остановки и пишет каждую в лог.

  • Строки кода в стеке

    Фреймы стека приходят вместе со строками кода вокруг них, прочитанными с диска, а также с версией Node, ОС и именем хоста.

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

Установка за пару минут

  1. 1

    Создайте проект

    Зарегистрируйтесь бесплатно и создайте проект. DSN храните в переменной окружения.

  2. 2

    Инициализируйте при старте

    Установите пакет и вызовите init до загрузки остального приложения, с нужными интеграциями.

  3. 3

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

    Ошибкам, которые фреймворк ловит в обработчике маршрута, нужна одна строка в его обработчике ошибок, чтобы попасть в Buglapse.

server.ts

Установка

echo "@buglapse:registry=https://app.buglapse.com/npm/" >> .npmrc
npm install @buglapse/node
import { init } from '@buglapse/node'

init({ dsn: process.env.BUGLAPSE_DSN })

Подробнее

Что собирается на сервере

Запросы изолированы друг от друга

Процесс Node обрабатывает много запросов одновременно на одном общем клиенте. Интеграция HTTP-сервера выполняет обработчики каждого запроса в собственной области, поэтому теги, пользователь, хлебные крошки и трейс принадлежат только этому запросу: ошибка в одном запросе не унесёт хлебные крошки другого. Каждое событие, пойманное во время обработки запроса, помечается его URL и методом, а спан запроса отмечается как неуспешный при ответе с ошибкой сервера.

Трейсы через асинхронный код

Активный спан следует за асинхронной цепочкой вызовов через await, таймеры и колбэки промисов, поэтому вложенные спаны оказываются на своём месте без передачи идентификаторов. Задачи из очереди, запуски по cron и скрипты становятся трейсами, стоит обернуть их в корневой спан, а к любому спану можно прикрепить именованные числа как метрики.

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

Сравнить все тарифы
На каждом тарифе
Free Pro Team
Проекты210Без лимита
Ошибки в месяц5 00025 000150 000
Спаны в месяц100 0001 000 00010 000 000

Вопросы

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

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

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

Написать нам

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

Работает ли с Express или Fastify?
Да. Запросы трассируются на уровне собственного HTTP-сервера Node, поэтому фреймворк поверх него не важен. Ошибки, которые фреймворк обрабатывает сам, отправляются одним вызовом из его обработчика ошибок.
Какие версии Node.js поддерживаются?
Node 18.19 и новее.
ESM или CommonJS?
Оба варианта. В пакете есть сборки ESM и CommonJS, поэтому import и require работают одинаково.

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

Трейсинг

Waterfall спанов для каждой загрузки страницы, перехода и серверного запроса.

Подробнее: Трейсинг

Логи

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

Подробнее: Логи

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

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

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

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

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

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