Monitoring błędów w Next.jsSentry w produkcji, alerty i scrubbing PII (2026)

sentry6 min czytania20 lipca 2026

Autor: DevStudio.it

TL;DR

Sentry w Next.js 15 to nie tylko console.error w chmurze — to jeden dashboard dla błędów klienta, Server Actions, route handlerów i middleware. W produkcji konfigurujesz DSN per środowisko, release tracking powiązany z deployem na DevStudioIT Cloud, alerty Slack przy spike'u 500 i scrubbing PII zanim email z formularza trafi do logów. Bez monitoringu błędów klient widzi „coś poszło nie tak" przy wysyłce leada — Ty dowiadujesz się z maila trzy dni później. Poniżej: pełna konfiguracja @sentry/nextjs, reguły beforeSend i integracja z pipeline CI.

Dla kogo to jest

  • Zespołów Next.js z formularzami kontaktowymi i Server Actions — błąd 500 = utracony lead
  • Firm B2B na DevStudioIT Cloud bez dedykowanego SRE — Sentry to pierwsza linia obrony
  • Developerów wdrażających RODO/GDPR — trzeba wiedzieć, co Sentry zbiera z payloadu formularza
  • Projektów z integracją CRM (n8n) — webhook fail musi być widoczny natychmiast
  • Każdego, kto ma „działa u mnie na localhost" i brak widoczności po deployu

Fraza (SEO)

sentry nextjs produkcja, monitoring błędów next.js, sentry server actions, scrubbing pii sentry, alerty slack sentry, error tracking app router 2026

Dlaczego console.log nie wystarczy w produkcji

W developmentzie błąd Server Action wyświetla stack trace w terminalu. W produkcji Next.js ukrywa szczegóły przed użytkownikiem — słusznie, ale bez Sentry Ty też ich nie widzisz. Typowe scenariusze:

Scenariusz Bez Sentry Ze Sentry
Timeout połączenia z PostgreSQL w Branchly Ciche 500, lead ginie Alert + stack + query context
Błąd walidacji Zod w Server Action Użytkownik widzi generyczny komunikat Widzisz dokładne pole i payload (po scrub)
Hydration mismatch na stronie /pl Trudne do reprodukcji Breadcrumbs + session replay (opcjonalnie)
Spike błędów po deploy Dowiesz się z supportu Alert w 2 min, rollback decyzja

Monitoring błędów to część SLA utrzymania — nie luksus dla dużych SaaS.

Instalacja Sentry w Next.js App Router

Oficjalny wizard @sentry/wizard@latest -i nextjs generuje pliki konfiguracyjne. Struktura minimalna:

npx @sentry/wizard@latest -i nextjs

Kluczowe pliki:

Plik Rola
sentry.client.config.ts Błędy w przeglądarce, hydration
sentry.server.config.ts Server Components, route handlers
sentry.edge.config.ts Middleware, edge routes
instrumentation.ts Hook Next.js do inicjalizacji

W next.config.ts wrapper withSentryConfig uploaduje source maps przy buildzie — tylko w CI, nie lokalnie z kluczem produkcyjnym.

Konfiguracja produkcyjna — DSN, środowiska, sampling

// sentry.server.config.ts
import * as Sentry from '@sentry/nextjs';

Sentry.init({
  dsn: process.env.SENTRY_DSN,
  environment: process.env.SENTRY_ENVIRONMENT ?? 'production',
  release: process.env.SENTRY_RELEASE,
  tracesSampleRate: 0.1,
  profilesSampleRate: 0.1,
  beforeSend(event) {
    return scrubPii(event);
  },
});
Zmienna env (DevStudioIT Cloud) Wartość
SENTRY_DSN DSN projektu Sentry
SENTRY_ENVIRONMENT production / staging
SENTRY_RELEASE git sha z CI — np. abc1234
SENTRY_AUTH_TOKEN Tylko w CI — upload source maps

Staging na osobnym projekcie Sentry lub tym samym z environment: staging — nie mieszaj błędów testowych z produkcją.

Scrubbing PII — formularze, RODO, beforeSend

Formularz kontaktowy wysyła email, telefon, treść wiadomości. Server Action może logować payload do Sentry przy błędzie walidacji — musisz to oczyścić:

function scrubPii(event: Sentry.Event): Sentry.Event | null {
  if (event.request?.data) {
    const data = typeof event.request.data === 'string'
      ? JSON.parse(event.request.data)
      : event.request.data;

    delete data.email;
    delete data.phone;
    delete data.message;
    event.request.data = JSON.stringify(data);
  }

  event.user = event.user ? { id: event.user.id } : undefined;
  return event;
}

Dodatkowo w panelu Sentry: Settings → Security & Privacy → Data Scrubbing — włącz domyślne reguły dla email, credit card, IP (opcjonalnie hashuj IP zamiast usuwać — mniej użyteczne przy debugowaniu geo).

Dane W Sentry Rekomendacja
Email leada ❌ nigdy Scrub w beforeSend
User ID (z sesji) ✅ hash Identyfikacja bez PII
Stack trace Core value
Request URL Bez query z tokenami
Cookies sendDefaultPii: false

Alerty — Slack, spike detection, regresje po deploy

W Sentry Alerts → Create Alert:

  1. New issue — pierwszy wystąpienie nieznanego błędu → Slack #dev-alerts
  2. Spike — >10 eventów/min tego samego issue → PagerDuty lub SMS on-call
  3. Regression — issue marked resolved wraca po deploy → link do release w Sentry

Powiąż release z deployem na DevStudioIT Cloud:

# fragment GitHub Actions
- name: Set Sentry release
  run: |
    export SENTRY_RELEASE="${{ github.sha }}"
    npx @sentry/cli releases new "$SENTRY_RELEASE"
    npx @sentry/cli releases finalize "$SENTRY_RELEASE"

Po deploy widzisz ** który commit wprowadził regresję** — bez zgadywania między pięcioma PR-ami z tego tygodnia.

Server Actions i route handlery — kontekst błędu

Server Action z zapisem do PostgreSQL w Branchly:

'use server';

import * as Sentry from '@sentry/nextjs';

export async function submitContact(formData: FormData) {
  return Sentry.withServerActionInstrumentation(
    'submitContact',
    { recordResponse: false },
    async () => {
      const parsed = contactSchema.safeParse(Object.fromEntries(formData));
      if (!parsed.success) {
        Sentry.captureMessage('Contact validation failed', 'warning');
        return { ok: false, errors: parsed.error.flatten() };
      }
      // zapis do Branchly / webhook n8n
    }
  );
}

recordResponse: false — nie wysyłaj odpowiedzi z danymi osobowymi do Sentry. Dla route handlerów API użyj Sentry.captureException(error, { tags: { route: '/api/webhook' } }).

Performance vs koszt — sampling i limity

Sentry Performance (traces) kosztuje więcej niż sam error tracking. Dla strony firmowej:

Typ Sample rate Uzasadnienie
Errors 100% Każdy błąd 500 się liczy
Transactions 10% Wystarczy do trendów LCP backend
Profiling 5–10% Tylko gdy debugujesz wolne Server Actions

Na staging ustaw tracesSampleRate: 1.0 — pełna widoczność bez kosztu produkcyjnego.

Release health — dashboard po deployu

W Sentry Releases porównuj crash-free sessions między wersjami:

Metryka Cel Akcja przy regresji
Crash-free rate > 99,5% Rollback na DevStudioIT Cloud
New issues w 1 h po deploy 0 critical Hotfix lub revert
P95 transaction duration ±10% vs poprzedni release Profiling Server Action

Powiązanie deploy → release wymaga jednej zmiennej SENTRY_RELEASE=${GITHUB_SHA} w pipeline — bez tego Sentry grupuje błędy w „unknown release" i tracisz sens regression alertów.

FAQ

Czy Sentry zastępuje logi serwera na DevStudioIT Cloud?

Nie — Sentry to błędy i performance traces. Logi stdout (requesty, startup) zostają w panelu hostingu. Używaj obu: Sentry dla exceptionów, logi dla audytu i debugowania infrastruktury.

Session Replay — włączać na stronie z formularzem?

Ostrożnie. Replay nagrywa DOM — może uchwycić wpisywany email zanim formularz wyśle. Wyłącz na /kontakt lub użyj maskAllText: true i blocklist selektorów formularza.

Self-hosted Sentry vs SaaS?

Dla większości klientów DevStudio Sentry SaaS z EU region i scrubbing PII wystarczy. Self-hosted ma sens przy tysiącach eventów/min i dedykowanym DevOps — koszt utrzymania rośnie szybciej niż licencja.

Jak testować integrację przed produkcją?

Route /api/sentry-test za flagą env, wywołany tylko na staging. Albo Sentry.captureException(new Error('Staging test')) w deploy preview. Nigdy nie zostawiaj test endpointu na produkcji bez auth.

Chcesz monitoring błędów w swoim Next.js?

Powiązane wpisy

n8n — automatyzacja formularzy: webhook z Next.js → CRM → Slack (2026)
6 min czytania
Lead scoring, formularz kontaktowy i pipeline sprzedaży — integracja z Next.js (2026)
6 min czytania
Next.js 15 Server Actions vs Route Handlers — formularze kontaktowe w 2026
10 min czytania

O autorze

Budujemy szybkie strony WWW, aplikacje web/mobile, chatboty AI i hosting — z naciskiem na SEO i konwersję.

Przydatne linki

Od teorii do produkcji — Branchly, hosting i realizacje.

Podoba Ci się nasze podejście? Zbudujmy coś razem.

Rozpocznij konfigurację projektu