Мониторинг · Урок 50

Мониторинг и логи

Продакшен живой: пользователи всё ломают не так, как вы тестировали. Мониторинг даёт сигналы о сбоях, контекст для расследования и спокойствие вместо «может, никто не заметит».

Ошибки: Sentry

npm i @sentry/node

import * as Sentry from "@sentry/node";
Sentry.init({ dsn: process.env.SENTRY_DSN });

// один раз обернули глобальный обработчик
app.use(Sentry.Handlers.errorHandler());

Sentry соберёт стек-трейсы, окружение, версию релиза и пользователя — карточка для разбора готова. Клиентская часть аналогична (@sentry/react).

Логи и живость

// GET /health → 200 {"status":"ok"}
app.get("/health", async (req, res) => {
  await db.query("SELECT 1");   // проверка связи с базой
  res.json({ status: "ok" });
});
💡
Метрика для начала — одна: процент успешных запросов (apdex). Падает ниже 99% — кто-то уже звонит. Остальное (латентность по страницам, ошибки API) добавляйте постепенно.
ℹ️
Правило инцидента: сначала восстановить, потом разбирать. Алерт привёл вас, вы перезапустили, пользователи счастливы — затем ищите первопричину по логам и Sentry.