Umów konsultację

Bezpłatna wycena w 24h

Sentry — co to jest i jak zmienia monitoring błędów w aplikacjach Next.js i SaaS

Sentry — co to jest i jak zmienia monitoring błędów w aplikacjach Next.js i SaaS

Narzędzia15 maja 202612 min czytania

Sentry to platforma do monitorowania błędów i wydajności aplikacji w czasie rzeczywistym. Ale ta definicja nic nie mówi o tym, dlaczego po wdrożeniu Sentry w trzech dużych projektach Next.js przestałem traktować logi serwera jako główne źródło informacji o problemach — i dlaczego uważam, że każdy projekt produkcyjny bez error trackingu to tykająca bomba.

Zanim przejdę do technikaliów — kontekst. Przez ostatnie dwa lata wdrożyłem Sentry w projektach od serwisu finansowego z 42 landing page'ami, przez sklep WooCommerce z headless frontem, po portal informacyjny z ponad 200 trasami. W każdym z tych projektów Sentry złapało błędy, o których nie wiedziałem — mimo że monitorowałem logi, testowałem ręcznie i miałem CI/CD z testami.

Problem jest prosty: użytkownicy nie zgłaszają błędów. Jeśli coś nie działa na jednym konkretnym modelu telefonu z Androidem 12 i przeglądarką Samsung Internet, użytkownik po prostu wychodzi. Nie pisze maila. Nie dzwoni. Po prostu znika — a Ty tracisz konwersję i nawet nie wiesz, że coś jest nie tak.

Czym dokładnie jest Sentry i jak działa

Sentry to usługa SaaS (z opcją self-hosted), która przechwytuje wyjątki, błędy i problemy wydajnościowe w Twojej aplikacji — zarówno po stronie klienta (przeglądarka), jak i serwera (Node.js, API routes, Server Components). Każdy przechwycony błąd trafia do dashboardu z pełnym kontekstem: stack trace, informacje o przeglądarce i systemie operacyjnym, breadcrumbs (co użytkownik robił przed błędem), a nawet nagranie sesji (Session Replay).

Kluczowa różnica między Sentry a zwykłymi logami: Sentry grupuje błędy w „issues". Jeśli ten sam TypeError wystąpi 300 razy u różnych użytkowników, widzisz jeden issue z liczbą wystąpień, nie 300 linii w logu. To zmienia sposób priorytetyzacji — widzisz od razu, co boli najbardziej.

Sentry obsługuje kilkadziesiąt platform i języków. W kontekście webowym najczęściej spotykamy się z SDK dla:

  • JavaScript / TypeScript — przechwytywanie błędów w przeglądarce (uncaught exceptions, unhandled promise rejections)
  • Node.js — błędy na serwerze, API routes, Server Components
  • Next.js — dedykowany SDK łączący oba powyższe z instrumentacją App Routera
  • React — Error Boundaries + component tracking

Dlaczego console.log i logi serwera to za mało

Słyszę to regularnie: „mamy logi na serwerze, więc monitoring błędów mamy ogarnięty". Z mojej praktyki wynika, że to złudzenie — i to niebezpieczne.

Po pierwsze: błędy klienckie nie trafiają do logów serwera. Jeśli JavaScript rzuca TypeError w przeglądarce użytkownika, Twój serwer tego nie zobaczy. A to właśnie błędy klienckie stanowią większość problemów wpływających na konwersję — zepsuty formularz, nieklikalny przycisk CTA, komponent który nie renderuje się na Safari iOS.

Po drugie: logi serwera to surowy strumień tekstu. Żeby znaleźć konkretny problem, musisz wiedzieć, czego szukasz. Sentry odwraca ten model — to narzędzie samo przychodzi do Ciebie z problemem, posortowanym po częstotliwości i wpływie na użytkowników.

Po trzecie: logi nie mają kontekstu użytkownika. Widzisz „TypeError: Cannot read properties of undefined (reading 'map')" — ale nie wiesz, czy to dotyczy jednego użytkownika czy tysiąca, na jakim urządzeniu wystąpił błąd, ani co użytkownik robił wcześniej. Sentry daje to wszystko w jednym widoku.

Wdrożenie Sentry w projekcie Next.js — krok po kroku

Sentry ma dedykowany wizard do Next.js, który konfiguruje SDK automatycznie. W praktyce wygląda to tak:

1. Instalacja i inicjalizacja:

npx @sentry/wizard@latest -i nextjs

Wizard tworzy trzy pliki konfiguracyjne: sentry.client.config.ts, sentry.server.config.ts i sentry.edge.config.ts — odpowiednio dla kodu klienckiego, serwerowego i edge runtime. Dodaje też instrumentation.ts z hookiem do Next.js i modyfikuje next.config.js, żeby podpiąć Sentry webpack plugin.

2. Source maps i nazwy wersji:

Żeby stack trace'y w Sentry pokazywały czytelny kod źródłowy (a nie zminifikowany bundle), Sentry automatycznie uploaduje source mapy podczas buildu. To kluczowe — bez tego widzisz a.map is not a function in chunk-3f2a.js:1:4832 zamiast konkretnej linii w Twoim kodzie.

3. Konfiguracja Error Boundary w React:

Sentry SDK dla React oferuje komponent Sentry.ErrorBoundary, który łapie błędy w drzewie React i wysyła je do Sentry z pełnym kontekstem komponentu. W Next.js App Router warto go umieścić w app/global-error.tsx:

'use client'
import * as Sentry from '@sentry/nextjs'

export default function GlobalError({ error }: { error: Error }) {
  Sentry.captureException(error)
  return (
    <html><body>
      <h2>Coś poszło nie tak</h2>
    </body></html>
  )
}

4. Instrumentacja Server Components i API Routes:

W Next.js 14+ z App Routerem, Sentry automatycznie instrumentuje Server Components. Błędy w page.tsx, layout.tsx czy route.ts (API routes) są przechwytywane bez dodatkowej konfiguracji. Jeśli chcesz ręcznie raportować błąd (np. w try-catch), używasz Sentry.captureException(error).

Co Sentry łapie, czego nie złapiesz sam

Z moich projektów — konkretne przykłady błędów, które Sentry wyłapało, a których nie znalazłbym innymi metodami:

  • Hydration mismatch na Safari iOS 15 — komponent renderował datę po stronie serwera w innym formacie niż po stronie klienta. Na Chrome działało. Na Safari — biały ekran. Sentry złapało to po 2 godzinach od deployu z pełnym stack trace'em i informacją o urządzeniu.
  • CORS error w API route — edge case, który występował tylko gdy użytkownik miał ustawiony specyficzny nagłówek Accept-Language. 15 użytkowników dziennie trafiało na ten błąd — bez Sentry nigdy bym go nie znalazł.
  • Memory leak w Server Component — Sentry Performance wychwycił, że jedna trasa odpowiada coraz wolniej z biegiem czasu. Okazało się, że zamykanie połączeń do cache'a nie działało prawidłowo przy ISR.
  • Broken third-party script — zewnętrzny skrypt chatbota zaczął rzucać wyjątkami po aktualizacji. Nie nasza wina, ale nasz problem — użytkownicy widzieli błędy w konsoli, a formularz kontaktowy przestał działać.

Sentry Performance — monitoring wydajności

Sentry to nie tylko error tracking. Moduł Performance monitoruje wydajność aplikacji w sposób, który uzupełnia Lighthouse i Core Web Vitals z GSC.

Kluczowa różnica: Lighthouse mierzy syntetycznie (symulowane warunki, jeden URL na raz). Sentry Performance mierzy Real User Monitoring (RUM) — zbiera dane od prawdziwych użytkowników, na prawdziwych urządzeniach, w prawdziwych warunkach sieciowych.

Max Mazurkiewicz

Max Mazurkiewicz

Founder

POTRZEBUJESZ SPERSONALIZOWANEJ WYCENY?

Chcesz się na coś zdecydować ale od nadmiaru możliwości boli głowa? Skontaktuj się z nami, dobierzemy rozwiązanie do potrzeb Twojej firmy.

Umów się na konsultację
Metryka Co mierzy Dlaczego ważne w Next.js
LCP Largest Contentful Paint Wykrywa wolne SSR i problemy z obrazami next/image
FCP First Contentful Paint Pokazuje, jak szybko Server Components dostarczają HTML
TTFB Time to First Byte Sygnał problemów z edge/serverless cold start
INP Interaction to Next Paint Czy interaktywne elementy React reagują wystarczająco szybko
Custom spans Czas operacji zdefiniowanych przez dewelopera Pomiar czasu fetch z CMS, cache hit/miss, operacji bazodanowych

W jednym z moich projektów headless WordPress + Next.js Sentry Performance pokazało, że 12% użytkowników doświadczało TTFB powyżej 3 sekund — wyłącznie z regionu Azji. Problem okazał się związany z lokalizacją edge functions na Vercel i rozwiązanie wymagało przeniesienia danych do regiony bardziej globalnego. Bez RUM od Sentry szukałbym przyczyny tygodniami.

Sentry vs. alternatywy — kiedy Sentry, a kiedy co innego

Sentry nie jest jedynym narzędziem na rynku. Ale z mojej perspektywy developera pracującego głównie z Next.js i React, to narzędzie z najlepszą integracją z tym ekosystemem.

Narzędzie Najlepsze do Słabe strony Cena (zespół 1-5 os.)
Sentry Next.js, React, fullstack JS UI potrafi przytłoczyć na początku Darmowe do 5K błędów/mies.
Bugsnag Aplikacje mobilne Słabsza integracja z Next.js Od $47/mies.
LogRocket Session replay + UX insights Ciężki SDK, wpływa na performance Od $69/mies.
Vercel Web Analytics Core Web Vitals na Vercel Nie łapie błędów, tylko metryki Wliczone w plan Vercel

Uważam, że Sentry to najlepszy stosunek możliwości do ceny w ekosystemie JavaScript. Darmowy plan (5 000 błędów miesięcznie) wystarcza dla większości projektów komercyjnych — a jeśli generujesz więcej niż 5 000 błędów miesięcznie, to masz dużo większy problem niż koszty narzędzia.

Kiedy wdrożyć Sentry — i czego nie odkładać

Z mojego doświadczenia — Sentry powinno być jednym z pierwszych narzędzi w nowym projekcie produkcyjnym. Nie po pierwszym incydencie. Nie „jak będzie czas". Od dnia, w którym aplikacja jest dostępna publicznie.

Powód jest prosty: błędy pojawiają się od pierwszego dnia. Różnica polega na tym, czy o nich wiesz. Klienci, którzy do mnie trafiają z „działającymi" stronami, często nie zdają sobie sprawy, że ich formularz kontaktowy nie działa na 15% urządzeń, że strona rzuca konsolowymi błędami na co trzeciej podstronie, albo że Server Components timeout-ują przy wolnym CMS-ie.

Konfiguracja Sentry w projekcie Next.js zajmuje dosłownie 10 minut. Nie ma powodu, żeby to odkładać. A koszt niewyłapanego błędu — utracone leady, spadek pozycji w Google z powodu słabych Core Web Vitals, frustracja użytkowników — jest niewspółmiernie wyższy.

Praktyczne wskazówki po roku z Sentry w produkcji

Kilka rzeczy, które wiem po roku pracy z Sentry w prawdziwych projektach, a których nie przeczytasz w dokumentacji:

Filtruj szum od razu. Sentry łapie wszystko — w tym błędy z rozszerzeń przeglądarek, botów i skryptów reklamowych. Ustaw filtry w sentry.client.config.ts za pomocą ignoreErrors i denyUrls, żeby dashboard nie tonął w szumie, który nie dotyczy Twojego kodu.

Ustaw alerty na nowe issues. Domyślna konfiguracja Sentry może wysyłać za dużo lub za mało powiadomień. Skonfiguruj alert: „wyślij na Slacka/maila, gdy pojawi się nowy issue z więcej niż 10 wystąpieniami w ciągu godziny". To eliminuje szum i jednocześnie nie pozwala przegapić prawdziwego problemu.

Taguj deploye. Sentry pozwala powiązać błędy z konkretnymi wersjami (release). Jeśli po deployu pojawia się 20 nowych issues — wiesz natychmiast, że ten deploy coś popsuł. W Next.js na Vercel konfiguracja release'ów jest automatyczna — Sentry SDK czyta zmienną VERCEL_GIT_COMMIT_SHA.

Session Replay — używaj selektywnie. Sentry oferuje nagrywanie sesji użytkowników (jak Hotjar, ale zintegrowany z error trackingiem). Uważam, że warto włączyć replay wyłącznie dla sesji z błędami (replaysOnErrorSampleRate: 1.0) — daje to pełny kontekst problemu bez kosztów nagrywania wszystkich sesji.

Nie ignoruj Performance alerts. Sentry domyślnie monitoruje Web Vitals. Jeśli LCP zaczyna rosnąć po konkretnym deployu — masz natychmiastowy feedback, zanim GSC pokaże spadek za 28 dni. To szczególnie ważne w Next.js, gdzie zmiana w Server Component może nieoczekiwanie wpłynąć na czas renderowania.

Sentry w aplikacjach SaaS — dlaczego monitoring błędów decyduje o retencji

Jeśli budujesz SaaS na Next.js, Sentry przechodzi z kategorii „przydatne" do kategorii „krytyczne". W SaaS-ie każdy niezłapany błąd to potencjalny churned user — i to nie dlatego, że użytkownik jest wymagający, ale dlatego, że ma alternatywy i zerowy próg tolerancji na błędy w płatnym produkcie.

Kilka scenariuszy, w których Sentry ratuje SaaS-y:

  • Onboarding — jeśli nowy użytkownik trafi na błąd podczas pierwszej sesji, nie wróci. Sentry z filtrem „new users" pozwala priorytetyzować błędy dotykające ludzi w kluczowym momencie lejka.
  • Billing i checkout — błąd w procesie płatności to bezpośrednia strata przychodu. Alert w Sentry skonfigurowany na ścieżkę /billing czy /checkout daje natychmiastową reakcję.
  • API dla klientów — jeśli Twój SaaS wystawia API, monitoring error rate per endpoint pozwala wykryć degradację, zanim klient napisze na support.
  • Multi-tenant issues — Sentry pozwala tagować błędy per tenant/organizacja. Widzisz, że jeden klient generuje 80% błędów? Prawdopodobnie ma specyficzną konfigurację, która łamie edge case w Twoim kodzie.

W SaaS-ach, które prowadzę lub konsultuję, Sentry jest jednym z pierwszych narzędzi wdrażanych obok analityki i CI/CD. Nie dlatego, że ktoś wymyślił sobie policy — dlatego, że bez niego nie da się utrzymać SLA i obietnic wobec płacących użytkowników.

Podsumowanie — co zmienia Sentry w codziennym developmencie

Sentry zmienia podejście do jakości kodu z reaktywnego na proaktywne. Zamiast dowiadywać się o problemie od klienta (lub, co gorsza, od Google w postaci spadku pozycji), dostajesz alert w ciągu minut od wystąpienia błędu.

W projektach Next.js, gdzie kod działa jednocześnie na serwerze, kliencie i edge runtime, monitoring błędów nie jest luksusem — to podstawowa infrastruktura. Sentry integruje się z tym ekosystemem lepiej niż cokolwiek innego na rynku i w darmowym planie pokrywa potrzeby większości projektów komercyjnych.

Jeśli jeszcze nie masz error trackingu w swoim projekcie — wdrożenie Sentry to najprostszy krok, który możesz podjąć dziś, żeby jutro wiedzieć więcej o tym, co naprawdę dzieje się w Twojej aplikacji.

Najczęściej zadawane pytania

Tak — Sentry oferuje darmowy plan (Developer) z limitem 5 000 błędów miesięcznie, co wystarcza dla większości projektów komercyjnych. Plan Team zaczyna się od $26/mies. za dewelopera i daje wyższe limity, alerty i integracje.

Wpływ na wydajność jest minimalny. SDK klienckie Sentry waży ok. 30 KB (gzipped) i działa asynchronicznie — nie blokuje renderowania. Performance monitoring dodaje lekki narzut na instrumentację, ale w testach na produkcyjnych projektach Next.js nie zaobserwowałem mierzalnego wpływu na Core Web Vitals.

Logi serwera łapią tylko błędy po stronie backendu. Sentry przechwytuje też błędy w przeglądarce użytkownika (TypeError, błędy sieciowe, problemy z hydracją React), grupuje je w issues, dodaje kontekst urządzenia i przeglądarki, a nawet pozwala odtworzyć sesję użytkownika (Session Replay).

Podstawowa konfiguracja zajmuje ok. 10 minut — wystarczy uruchomić npx @sentry/wizard@latest -i nextjs, podać DSN z dashboardu Sentry i zrobić deploy. Wizard automatycznie tworzy pliki konfiguracyjne dla klienta, serwera i edge runtime.

Tak — Sentry SDK od wersji 8 ma pełne wsparcie dla Next.js App Router, w tym automatyczną instrumentację Server Components, Route Handlers i Middleware. Błędy w page.tsx, layout.tsx i route.ts są przechwytywane bez dodatkowej konfiguracji.

Tak — Sentry jest open source i można go uruchomić self-hosted na Docker. Wymaga to jednak administracji serwerem, bazy PostgreSQL, Redis i ClickHouse. Dla większości projektów plan SaaS jest prostszy i tańszy niż utrzymywanie własnej infrastruktury.

Max Mazurkiewicz
Max Mazurkiewicz
Founder
Digital marketing expert