From 7b230dec13faa7fb8596ad281fa9a784d8c448fa Mon Sep 17 00:00:00 2001 From: julianpoyourow Date: Sun, 9 Feb 2025 21:21:44 +0000 Subject: [PATCH] chore: improve sentry environment handling --- docker-compose.yml | 1 + packages/backend/src/services/sentry-init.js | 2 +- packages/frontend/src/app/app.module.ts | 10 +++++++++- packages/frontend/src/service-worker.ts | 9 +++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 67852d66..25f8e943 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,6 +45,7 @@ services: - FIRESTORE_BUCKET= - STORAGE_TYPE=s3 #POSSIBLE VALUES: s3, firebase, filesystem - NODE_ENV=development + - ENVIRONMENT=development - VERBOSE=false - VERSION=development - POSTGRES_DB=recipesage_dev diff --git a/packages/backend/src/services/sentry-init.js b/packages/backend/src/services/sentry-init.js index c48b8358..b7869461 100644 --- a/packages/backend/src/services/sentry-init.js +++ b/packages/backend/src/services/sentry-init.js @@ -11,6 +11,6 @@ Sentry.init({ tracesSampleRate: parseFloat(process.env.SENTRY_SAMPLE_RATE || 1.0, 10), profilesSampleRate: parseFloat(process.env.SENTRY_SAMPLE_RATE || 1.0, 10), - environment: process.env.NODE_ENV, + environment: process.env.ENVIRONMENT || "unknown", release: RS_VERSION, }); diff --git a/packages/frontend/src/app/app.module.ts b/packages/frontend/src/app/app.module.ts index 6477e66e..8bd87f84 100644 --- a/packages/frontend/src/app/app.module.ts +++ b/packages/frontend/src/app/app.module.ts @@ -61,9 +61,17 @@ console.error = (...args) => { }; if (!IS_SELFHOST) { + const hostname = window.location.hostname; + let sentryEnvironment = environment.production ? "production" : "development"; + if (sentryEnvironment === "production" && hostname.startsWith("beta.")) { + // We don't do separate builds for beta/production, so hostname check is the best + // approach + sentryEnvironment = "beta"; + } + Sentry.init({ release: (window as any).version, - environment: environment.production ? "production" : "dev", + environment: sentryEnvironment, dsn: "https://f1c0027c08fd438cb3beac8b658cc645@glitchtip.poyourow.com/2", transport: Sentry.makeBrowserOfflineTransport(Sentry.makeFetchTransport), tracesSampleRate: SENTRY_SAMPLE_RATE, diff --git a/packages/frontend/src/service-worker.ts b/packages/frontend/src/service-worker.ts index 95461c95..3139da3b 100644 --- a/packages/frontend/src/service-worker.ts +++ b/packages/frontend/src/service-worker.ts @@ -7,6 +7,15 @@ declare let self: ServiceWorkerGlobalScope; import * as Sentry from "@sentry/browser"; if (process.env.ENVIRONMENT !== "selfhost") { + const hostname = self.location.hostname; + + let environment = process.env.ENVIRONMENT; + if (environment === "production" && hostname.startsWith("beta.")) { + // We don't do separate builds for beta/production, so hostname check is the best + // approach + environment = "beta"; + } + Sentry.init({ release: process.env.APP_VERSION, environment: process.env.ENVIRONMENT,