Мониторинг и логирование: Sentry, метрики

↑ 8.4 Frontend System Design · ← Предыдущая · → Следующая

Желательно~3 мин чтенияУровень: senior

Зачем это на собесе

Frontend observability: как узнать о проблемах раньше пользователей и связать ошибки с релизом и трассой.

Что собираем

СигналИнструмент
Ошибки JS и необработанные промисыSentry, Rollbar, Bugsnag
Производительность (Web Vitals, транзакции)Sentry Performance, web-vitals, Datadog RUM
Пользовательские событияаналитика, продуктовые метрики
Логиклиентский логгер → сервер
Сессииsession replay (с маскированием)
ТрассировкиOpenTelemetry (связь с бэкендом)

Sentry во Vue

import * as Sentry from '@sentry/vue'
 
Sentry.init({
  app,
  dsn: config.sentryDsn,
  environment: config.env,
  release: config.release,
  integrations: [Sentry.browserTracingIntegration({ router }), Sentry.replayIntegration({ maskAllText: true })],
  tracesSampleRate: 0.1,
  replaysSessionSampleRate: 0.01,
  replaysOnErrorSampleRate: 1.0,
  beforeSend(event) { return scrub(event) },   // удалить чувствительные данные
})

SDK захватывает исключение, breadcrumbs (клики, запросы, навигация), stack-trace через source maps и контекст (пользователь, release, браузер).

Обработка ошибок

app.config.errorHandler = (err, instance, info) => Sentry.captureException(err, { extra: { info } })
window.addEventListener('unhandledrejection', e => Sentry.captureException(e.reason))
  • Error Boundary через onErrorCaptured — показать запасной UI;
  • ошибки сети — с кодом и трассой (traceparent в заголовках, связка с бэкендом);
  • игнорировать шум (расширения браузера, отмена запросов) через ignoreErrors.

Релизы

  • release = git sha / версия, загрузка source maps (hidden) при деплое;
  • Release health: доля сессий без сбоев, регрессии после релиза;
  • алерты: рост новой ошибки, падение crash-free rate, ухудшение LCP;
  • привязка к коммитам и авторам (suspect commits).

Приватность

  • не логировать токены, пароли, персональные данные;
  • маскирование в session replay;
  • согласие пользователя и требования законов;
  • сэмплирование для снижения объёма и стоимости.

Метрики продукта

Воронки, конверсия, ошибки на шаге, время выполнения сценариев. Дашборды и SLO: например, 99% загрузок страницы без ошибок.

Вопросы с ответами