This commit is contained in:
2025-03-29 18:00:19 +01:00
parent 85c03bc483
commit 8e2caf1e73

View File

@@ -9,16 +9,13 @@ const Sentry = require("@sentry/node");
Sentry.init({ Sentry.init({
// DSN should now be available from process.env if set in .env // DSN should now be available from process.env if set in .env
// Using a syntactically valid but fake DSN as default // Using a syntactically valid but fake DSN as default
dsn: process.env.SENTRY_DSN || "https://7ea70caba68f548fb96482a573006a7b@o447623.ingest.us.sentry.io/4509062020333568", dsn: process.env.SENTRY_DSN || "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@oooooooooooooooo.ingest.sentry.io/123456",
// Remove explicit integrations for now, rely on defaults // Minimal configuration for debugging
// integrations: [], // Let Sentry add defaults like Http, Express automatically // tracesSampleRate: 1.0, // Keep tracing enabled if needed later
// Performance Monitoring - Keep enabled
tracesSampleRate: process.env.NODE_ENV === 'production' ? 0.1 : 1.0,
// Profiling disabled for now to simplify
// profilesSampleRate: process.env.NODE_ENV === 'production' ? 0.1 : 1.0,
environment: process.env.NODE_ENV || 'development',
release: process.env.GIT_COMMIT_SHA || undefined,
}); });
// DEBUG: Check Sentry object after init
console.log("Sentry object after init:", typeof Sentry, Sentry ? Object.keys(Sentry) : 'Sentry is undefined/null');
// --- Ende Sentry Initialisierung --- // --- Ende Sentry Initialisierung ---
@@ -47,16 +44,28 @@ const logger = pino({
const app = express(); const app = express();
const PORT = process.env.PORT || 3000; const PORT = process.env.PORT || 3000;
// DEBUG: Check Sentry.Handlers before use
console.log("Sentry.Handlers before use:", typeof Sentry.Handlers, Sentry.Handlers ? Object.keys(Sentry.Handlers) : 'Sentry.Handlers is undefined/null');
// --- Sentry Request Handler (AS FIRST MIDDLEWARE!) --- // --- Sentry Request Handler (AS FIRST MIDDLEWARE!) ---
// This handler must be the first middleware on the app. // This handler must be the first middleware on the app.
// It needs to be called AFTER Sentry.init() // It needs to be called AFTER Sentry.init()
app.use(Sentry.Handlers.requestHandler()); if (Sentry.Handlers && Sentry.Handlers.requestHandler) {
app.use(Sentry.Handlers.requestHandler());
} else {
console.error("Sentry.Handlers.requestHandler is not available!");
// Optional: process.exit(1); // Exit if Sentry handler is crucial
}
// --- Ende Sentry Request Handler --- // --- Ende Sentry Request Handler ---
// --- Sentry Tracing Handler (AFTER requestHandler, BEFORE routes) --- // --- Sentry Tracing Handler (AFTER requestHandler, BEFORE routes) ---
// This handler must be after requestHandler and before any routes. // This handler must be after requestHandler and before any routes.
// It adds tracing information to incoming requests. // It adds tracing information to incoming requests.
app.use(Sentry.Handlers.tracingHandler()); if (Sentry.Handlers && Sentry.Handlers.tracingHandler) {
app.use(Sentry.Handlers.tracingHandler());
} else {
console.error("Sentry.Handlers.tracingHandler is not available!");
}
// --- Ende Sentry Tracing Handler --- // --- Ende Sentry Tracing Handler ---
@@ -804,16 +813,21 @@ app.get('/api/version', (req, res) => {
// --- Sentry Error Handler (NACH ALLEN ROUTEN, VOR ANDEREN ERROR HANDLERN) --- // --- Sentry Error Handler (NACH ALLEN ROUTEN, VOR ANDEREN ERROR HANDLERN) ---
// Wichtig: Der Error Handler muss 4 Argumente haben, damit Express ihn als Error Handler erkennt. // Wichtig: Der Error Handler muss 4 Argumente haben, damit Express ihn als Error Handler erkennt.
app.use(Sentry.Handlers.errorHandler({ // Er muss NACH allen anderen Middlewares und Routen stehen.
shouldHandleError(error) { if (Sentry.Handlers && Sentry.Handlers.errorHandler) {
// Hier können Sie entscheiden, ob ein Fehler an Sentry gesendet werden soll app.use(Sentry.Handlers.errorHandler({
// z.B. keine 404-Fehler senden shouldHandleError(error) {
if (error.status === 404) { // Hier können Sie entscheiden, ob ein Fehler an Sentry gesendet werden soll
return false; // z.B. keine 404-Fehler senden
} if (error.status === 404) {
return true; return false;
}, }
})); return true;
},
}));
} else {
console.error("Sentry.Handlers.errorHandler is not available!");
}
// --- Ende Sentry Error Handler --- // --- Ende Sentry Error Handler ---
// Optional: Ein generischer Fallback-Error-Handler nach Sentry // Optional: Ein generischer Fallback-Error-Handler nach Sentry