diff --git a/Dockerfile b/Dockerfile index 81b02565..afec5a63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,4 +63,4 @@ ENV NODE_ENV=production ENV NODE_PATH=. USER node -CMD [ "dumb-init", "node", "/home/node/app/src/server.js" ] +CMD ["dumb-init", "node", "--experimental-loader", "newrelic/esm-loader.mjs", "-r", "newrelic", "/home/node/app/src/server.js"] diff --git a/package.json b/package.json index ffd82fc5..8b70f79c 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "start:dev": "cross-env NODE_ENV=development tsx --env-file=.env src/server.ts", "start:dev:watch": "cross-env NODE_ENV=development tsx watch --env-file=.env src/server.ts", "start:prod": "tsc && cross-env NODE_ENV=production node --env-file-if-exists=.env dist/src/server.js", + "start:prod:newrelic": "tsc && cross-env NODE_ENV=production node --experimental-loader newrelic/esm-loader.mjs -r newrelic --env-file-if-exists=.env dist/src/server.js", "free-ports": "npx cross-port-killer 3000" }, "keywords": [], diff --git a/src/server.ts b/src/server.ts index 46e42e98..e8a39587 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,9 +1,4 @@ -if (process.env.NEW_RELIC_ENABLED !== 'false') { - await import('newrelic') -} - import { getApp } from './app.js' -import type { Config } from './infrastructure/config.js' import { getConfig, isProduction } from './infrastructure/config.js' import { executeAndHandleGlobalErrors, @@ -13,7 +8,7 @@ import { async function start() { globalLogger.info('Starting application...') - const config = executeAndHandleGlobalErrors(getConfig) + const config = executeAndHandleGlobalErrors(getConfig) const app = await getApp({ enableMetrics: isProduction(), })