TL;DR
Sentry in Next.js 15 ist mehr als console.error in der Cloud — ein Dashboard für Client-Fehler, Server Actions, Route Handler und Middleware. In Produktion konfigurieren Sie DSN pro Umgebung, Release-Tracking am Deploy auf DevStudioIT Cloud, Slack-Alerts bei 500-Spikes und PII-Scrubbing, bevor Formulardaten in Logs landen. Ohne Monitoring sieht der Kunde „etwas ist schiefgelaufen" beim Lead — Sie erfahren es drei Tage später vom Support. Unten: @sentry/nextjs-Setup, beforeSend-Regeln und CI-Integration.
Für wen
- Next.js-Teams mit Kontaktformularen und Server Actions — 500 = verlorener Lead
- B2B-Unternehmen auf DevStudioIT Cloud ohne dediziertes SRE
- Entwickler mit DSGVO-Anforderungen — wissen müssen, was Sentry aus Payloads sammelt
- Projekte mit CRM-Integration (n8n)
- Alle mit „läuft lokal" und null Sichtbarkeit nach Deploy
Keyword
sentry nextjs produktion, fehler monitoring next.js, sentry server actions, pii scrubbing sentry, slack alerts sentry, error tracking app router 2026
Warum console.log in Produktion nicht reicht
In Development zeigt ein Server-Action-Fehler den Stack im Terminal. In Produktion verbirgt Next.js Details vor Nutzern — richtig, aber ohne Sentry sehen Sie sie auch nicht.
| Szenario | Ohne Sentry | Mit Sentry |
|---|---|---|
| PostgreSQL-Timeout in Branchly | Stilles 500 | Alert + Stack |
| Zod-Validierungsfehler | Generische Meldung | Feld + Payload (nach Scrub) |
| Hydration Mismatch | Schwer reproduzierbar | Breadcrumbs |
| Spike nach Deploy | Support informiert | Alert in 2 Min |
Installation im App Router
npx @sentry/wizard@latest -i nextjs| Datei | Rolle |
|---|---|
sentry.client.config.ts |
Browser, Hydration |
sentry.server.config.ts |
Server Components, Routes |
sentry.edge.config.ts |
Middleware |
instrumentation.ts |
Next.js Init |
withSentryConfig in next.config.ts lädt Source Maps beim Build — nur in CI.
Produktionskonfiguration
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,
beforeSend(event) {
return scrubPii(event);
},
});| Env (DevStudioIT Cloud) | Wert |
|---|---|
SENTRY_DSN |
Projekt-DSN |
SENTRY_ENVIRONMENT |
production / staging |
SENTRY_RELEASE |
Git-SHA aus CI |
SENTRY_AUTH_TOKEN |
Nur CI |
PII-Scrubbing — Formulare und DSGVO
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;
}Zusätzlich: Settings → Security & Privacy → Data Scrubbing in Sentry. sendDefaultPii: false setzen.
| Daten | In Sentry | Empfehlung |
|---|---|---|
| Lead-E-Mail | ❌ | Scrub in beforeSend |
| User-ID | ✅ gehasht | Ohne PII |
| Stack Trace | ✅ | Kernwert |
| Cookies | ❌ | Default PII aus |
Alerts — Slack und Release-Tracking
- New issue → Slack
#dev-alerts - Spike → >10 Events/Min
- Regression → gelöstes Issue nach Deploy zurück
Release an Deploy auf DevStudioIT Cloud binden:
- name: Set Sentry release
run: |
export SENTRY_RELEASE="${{ github.sha }}"
npx @sentry/cli releases new "$SENTRY_RELEASE"
npx @sentry/cli releases finalize "$SENTRY_RELEASE"Server Actions mit 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() };
}
// Speichern in Branchly / n8n Webhook
}
);
}Sampling und Kosten
| Typ | Sample Rate | Begründung |
|---|---|---|
| Errors | 100% | Jeder 500 zählt |
| Transactions | 10% | Backend-Trends |
| Profiling | 5–10% | Nur bei Debug |
Staging: tracesSampleRate: 1.0.
FAQ
Ersetzt Sentry Server-Logs auf DevStudioIT Cloud?
Nein. Sentry = Exceptions und Traces. Stdout-Logs bleiben im Hosting-Panel. Beides nutzen.
Session Replay bei Formularen?
Vorsicht — DOM-Aufnahme kann E-Mail erfassen. Auf /kontakt deaktivieren oder maskAllText: true.
Self-hosted vs SaaS?
Für die meisten DevStudio-Kunden reicht Sentry SaaS (EU) mit Scrubbing. Self-hosted lohnt bei sehr hohem Event-Volumen.
Integration testen?
Test-Route nur auf Staging mit Env-Flag. Niemals ungeschützt in Produktion.
Fehler-Monitoring für Ihr Next.js-Projekt?
- Kontakt — Sentry, PII-Scrubbing und Alerts auf DevStudioIT Cloud
- Branchly + PostgreSQL — Datenebene neben App-Hosting
- n8n und CRM-Formulare — Webhook-Fehler sofort sichtbar
Über den Autor
Wir bauen schnelle Websites, Web/Mobile-Apps, KI-Chatbots und Hosting — mit Fokus auf SEO und Conversion.
Empfohlene Links
Von Theorie zu Produktion — Branchly, Hosting-Stack und Referenzen.
