Как централизовать файлы конфигурации sentry в контексте микро-приложений?

#next.js #sentry #micro-architecture #observability

Вопрос:

В настоящее время я создаю приложение, в котором есть несколько микро-приложений с NextJS с интеграцией sentry каждое.

Я централизовал свою конфигурацию sentry в специальной библиотеке, используемой всеми приложениями, но во время сборки микро-приложения два файла sentry.client.config.js и sentry.server.config.js с этим содержимым :

 // sentry.client.config.js
import * as Sentry from "@sentry/nextjs";
import { Integrations } from "@sentry/tracing";

const SENTRY_DSN = process.env.SENTRY_DSN;

Sentry.init({
  dsn: SENTRY_DSN,
  integrations: [new Integrations.BrowserTracing()],
  tracesSampleRate: 1.0
});
 
 // sentry.server.config.js
import * as Sentry from "@sentry/nextjs";

const SENTRY_DSN: string | undefined = process.env.SENTRY_DSN;

Sentry.init({
  dsn: SENTRY_DSN,
  tracesSampleRate: 1.0
});
 

Я бы предпочел избегать копирования, вставляя одни и те же файлы во все мои микро-приложения.

Есть ли способ передать параметры напрямую в sentry, не имея этих двух файлов в каком-либо отдельном микро-приложении.

 const SentryWebpackPluginOptions = {
  authToken: SENTRY_AUTH_TOKEN,
  org: SENTRY_ORG,
  url: "https://sentry.io/",
  project: SENTRY_PROJECT,
  include: ".",
  ignore: ["node_modules"],
  urlPrefix: `~/_next/dist/apps/${MAPP_ID}/exported/_next`,
  silent: true
  // For all available options, see:
  // https://github.com/getsentry/sentry-webpack-plugin#options.
};