Трейсинг показывает, на что уходит время: как долго грузится страница, какие запросы и ресурсы её тормозят, сколько занимает ответ бэкенда. Каждая загрузка страницы или переход в SPA — это трейс, а каждый шаг внутри (запрос, загрузка скрипта, ваш код) — спан.
Включить в браузере
Script-тег. В Настройки → Скрипт загрузчика включите Трассировку в браузере.
npm:
ts
import { init } from '@buglapse/browser'
import { browserTracingIntegration } from '@buglapse/browser/integrations'
init({
dsn: '{dsn}',
integrations: [browserTracingIntegration()],
})Для Vue с роутером трейсинг включается сам при передаче router в init() — см. Vue Router.
Что попадает в трейс автоматически:
- загрузка страницы (
pageload) с фазами — DNS, соединение, ответ, DOM — и web vitals: TTFB, FCP, LCP, CLS; - каждый переход в SPA (
navigation); - запросы
fetchи XHR; - скрипты, стили, картинки и шрифты, которые грузились дольше 10 мс.
Включить в Node.js
ts
import { init } from '@buglapse/node'
import { httpServerIntegration, httpTracingIntegration } from '@buglapse/node/integrations'
init({
dsn: process.env.BUGLAPSE_DSN,
integrations: [
httpServerIntegration(), // трейс на каждый входящий запрос
httpTracingIntegration(), // исходящие запросы — дочерними спанами
],
})Если фронтенд и бэкенд подключены к Buglapse, запрос со страницы и его обработка на сервере показываются одним трейсом. Для запросов на другой домен добавьте его в tracePropagationTargets и разрешите заголовки traceparent и tracestate в CORS — см. Распределённый трейсинг.
Замерить свой код
Оберните код в span() или asyncSpan() — он появится в трейсе отдельным шагом:
ts
await Buglapse.asyncSpan('checkout', async (span) => {
await chargeCard(order)
span.metric('order.total', order.total)
})К спану можно прикрепить числовые метрики (span.metric()), они бесплатны. Подробнее: Трейсинг в браузере, в Node.
Где смотреть
Раздел Трейсы проекта показывает по строке на каждую загрузку, переход или запрос. В трейсе виден водопад спанов с длительностями и метриками. Ошибки и логи, произошедшие во время трейса, связаны с ним — из исключения можно перейти в его трейс.
Квота и сэмплирование
Каждый спан — одно событие в месячной квоте спанов. Чтобы не тратить её на каждую загрузку:
- в Настройки → Фильтры → Сэмплирование задайте Долю трейсов, например
10%. Решение принимается на трейс целиком, изменения применяются сразу без деплоя; - в SDK можно также задать
tracesSampleRate— так меньше трафика, но менять придётся в коде.
Ошибки и логи из несохранённых трейсов всё равно приходят.