From f9b3eba9737b308f91566fc68aa666273dad46f4 Mon Sep 17 00:00:00 2001 From: Stan Girard Date: Sun, 2 Jul 2023 14:32:09 +0200 Subject: [PATCH] feat(sentry): added only if env variable set --- frontend/next.config.js | 80 ++++++++++++++++---------------- frontend/sentry.client.config.ts | 76 +++++++++++++++--------------- frontend/sentry.edge.config.ts | 30 ++++++------ frontend/sentry.server.config.ts | 30 ++++++------ 4 files changed, 109 insertions(+), 107 deletions(-) diff --git a/frontend/next.config.js b/frontend/next.config.js index cad0c71262f3..7d8c003d7dc5 100644 --- a/frontend/next.config.js +++ b/frontend/next.config.js @@ -1,41 +1,43 @@ const nextConfig = {}; -module.exports = nextConfig; - - -// // Injected content via Sentry wizard below - -// const { withSentryConfig } = require("@sentry/nextjs"); - -// module.exports = withSentryConfig( -// module.exports, -// { -// // For all available options, see: -// // https://github.com/getsentry/sentry-webpack-plugin#options - -// // Suppresses source map uploading logs during build -// silent: true, - -// org: "quivr-0f", -// project: "javascript-nextjs", -// }, -// { -// // For all available options, see: -// // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ - -// // Upload a larger set of source maps for prettier stack traces (increases build time) -// widenClientFileUpload: true, - -// // Transpiles SDK to be compatible with IE11 (increases bundle size) -// transpileClientSDK: true, - -// // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) -// tunnelRoute: "/monitoring", - -// // Hides source maps from generated client bundles -// hideSourceMaps: true, - -// // Automatically tree-shake Sentry logger statements to reduce bundle size -// disableLogger: true, -// } -// ); \ No newline at end of file +// Check if the SENTRY_DSN environment variable is defined +if (process.env.SENTRY_DSN) { + // SENTRY_DSN exists, include Sentry configuration + const { withSentryConfig } = require("@sentry/nextjs"); + + module.exports = withSentryConfig( + nextConfig, + { + // For all available options, see: + // https://github.com/getsentry/sentry-webpack-plugin#options + + // Suppresses source map uploading logs during build + silent: true, + + org: "quivr-0f", + project: "javascript-nextjs", + }, + { + // For all available options, see: + // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, + + // Transpiles SDK to be compatible with IE11 (increases bundle size) + transpileClientSDK: true, + + // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) + tunnelRoute: "/monitoring", + + // Hides source maps from generated client bundles + hideSourceMaps: true, + + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + } + ); +} else { + // SENTRY_DSN does not exist, export nextConfig without Sentry + module.exports = nextConfig; +} \ No newline at end of file diff --git a/frontend/sentry.client.config.ts b/frontend/sentry.client.config.ts index 9bf78aead96b..bb2cef54f314 100644 --- a/frontend/sentry.client.config.ts +++ b/frontend/sentry.client.config.ts @@ -1,38 +1,38 @@ -// // This file configures the initialization of Sentry on the client. -// // The config you add here will be used whenever a users loads a page in their browser. -// // https://docs.sentry.io/platforms/javascript/guides/nextjs/ - -// import * as Sentry from "@sentry/nextjs"; - -// // Get the DSN from the environment variable -// const SENTRY_DSN = process.env.SENTRY_DSN; - -// // Only initialize Sentry if the DSN is set -// if (SENTRY_DSN) { -// Sentry.init({ -// dsn: SENTRY_DSN, - -// // Adjust this value in production, or use tracesSampler for greater control -// tracesSampleRate: 1, - -// // Setting this option to true will print useful information to the console while you're setting up Sentry. -// debug: false, - -// replaysOnErrorSampleRate: 1.0, - -// // This sets the sample rate to be 10%. You may want this to be 100% while -// // in development and sample at a lower rate in production -// replaysSessionSampleRate: 0.1, - -// // You can remove this option if you're not planning to use the Sentry Session Replay feature: -// integrations: [ -// new Sentry.Replay({ -// // Additional Replay configuration goes in here, for example: -// maskAllText: true, -// blockAllMedia: true, -// }), -// ], -// }); -// } else { -// console.log("Sentry is not initialized as SENTRY_DSN is not set"); -// } \ No newline at end of file +// This file configures the initialization of Sentry on the client. +// The config you add here will be used whenever a users loads a page in their browser. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ + +import * as Sentry from "@sentry/nextjs"; + +// Get the DSN from the environment variable +const SENTRY_DSN = process.env.SENTRY_DSN; + +// Only initialize Sentry if the DSN is set +if (SENTRY_DSN) { + Sentry.init({ + dsn: SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + + replaysOnErrorSampleRate: 1.0, + + // This sets the sample rate to be 10%. You may want this to be 100% while + // in development and sample at a lower rate in production + replaysSessionSampleRate: 0.1, + + // You can remove this option if you're not planning to use the Sentry Session Replay feature: + integrations: [ + new Sentry.Replay({ + // Additional Replay configuration goes in here, for example: + maskAllText: true, + blockAllMedia: true, + }), + ], + }); +} else { + console.log("Sentry is not initialized as SENTRY_DSN is not set"); +} \ No newline at end of file diff --git a/frontend/sentry.edge.config.ts b/frontend/sentry.edge.config.ts index b33fb1b3ad73..0805f5be2a9d 100644 --- a/frontend/sentry.edge.config.ts +++ b/frontend/sentry.edge.config.ts @@ -1,19 +1,19 @@ -// import * as Sentry from "@sentry/nextjs"; +import * as Sentry from "@sentry/nextjs"; -// // Get the DSN from the environment variable -// const SENTRY_DSN = process.env.SENTRY_DSN; +// Get the DSN from the environment variable +const SENTRY_DSN = process.env.SENTRY_DSN; -// // Only initialize Sentry if the DSN is set -// if (SENTRY_DSN) { -// Sentry.init({ -// dsn: SENTRY_DSN, +// Only initialize Sentry if the DSN is set +if (SENTRY_DSN) { + Sentry.init({ + dsn: SENTRY_DSN, -// // Adjust this value in production, or use tracesSampler for greater control -// tracesSampleRate: 1, + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, -// // Setting this option to true will print useful information to the console while you're setting up Sentry. -// debug: false, -// }); -// } else { -// console.log("Sentry is not initialized on the server as SENTRY_DSN is not set"); -// } \ No newline at end of file + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + }); +} else { + console.log("Sentry is not initialized on the server as SENTRY_DSN is not set"); +} \ No newline at end of file diff --git a/frontend/sentry.server.config.ts b/frontend/sentry.server.config.ts index b33fb1b3ad73..0805f5be2a9d 100644 --- a/frontend/sentry.server.config.ts +++ b/frontend/sentry.server.config.ts @@ -1,19 +1,19 @@ -// import * as Sentry from "@sentry/nextjs"; +import * as Sentry from "@sentry/nextjs"; -// // Get the DSN from the environment variable -// const SENTRY_DSN = process.env.SENTRY_DSN; +// Get the DSN from the environment variable +const SENTRY_DSN = process.env.SENTRY_DSN; -// // Only initialize Sentry if the DSN is set -// if (SENTRY_DSN) { -// Sentry.init({ -// dsn: SENTRY_DSN, +// Only initialize Sentry if the DSN is set +if (SENTRY_DSN) { + Sentry.init({ + dsn: SENTRY_DSN, -// // Adjust this value in production, or use tracesSampler for greater control -// tracesSampleRate: 1, + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, -// // Setting this option to true will print useful information to the console while you're setting up Sentry. -// debug: false, -// }); -// } else { -// console.log("Sentry is not initialized on the server as SENTRY_DSN is not set"); -// } \ No newline at end of file + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + }); +} else { + console.log("Sentry is not initialized on the server as SENTRY_DSN is not set"); +} \ No newline at end of file