From d92a13feaa1121781d0d5a30337c202fe9015c3a Mon Sep 17 00:00:00 2001 From: s1gr1d Date: Fri, 4 Oct 2024 13:45:09 +0200 Subject: [PATCH 1/3] feat(nuxt): Add "Deployment Provider Setup" --- .../deployment-provider-setup/general.mdx | 78 ++++++++++++++++++ .../deployment-provider-setup/index.mdx | 9 ++ .../deployment-provider-setup/netlify.mdx | 50 +++++++++++ .../common-imgs/img/netlify-env-variable.png | Bin 0 -> 76774 bytes includes/common-imgs/netlify-env-variable.md | 1 + 5 files changed, 138 insertions(+) create mode 100644 docs/platforms/javascript/common/deployment-provider-setup/general.mdx create mode 100644 docs/platforms/javascript/common/deployment-provider-setup/index.mdx create mode 100644 docs/platforms/javascript/common/deployment-provider-setup/netlify.mdx create mode 100644 includes/common-imgs/img/netlify-env-variable.png create mode 100644 includes/common-imgs/netlify-env-variable.md diff --git a/docs/platforms/javascript/common/deployment-provider-setup/general.mdx b/docs/platforms/javascript/common/deployment-provider-setup/general.mdx new file mode 100644 index 00000000000000..a5c34eedb5d416 --- /dev/null +++ b/docs/platforms/javascript/common/deployment-provider-setup/general.mdx @@ -0,0 +1,78 @@ +--- +title: General +sidebar_order: 1 +description: "Learn about the general deployment setup when using Sentry." +supported: + - javascript.nuxt +--- + + + Nuxt compiles all your code for the client and server side to ECMAScript modules (ESM) syntax ([learn more about ESM and Nuxt](https://nuxt.com/docs/guide/concepts/esm)). + + +Adding Sentry on the server-side for a project in ESM syntax is different from adding Sentry to a project in CommonJS (CJS) syntax. +The Sentry initialization code needs to be loaded first when the application starts. +Preloading the Sentry server config file can be done with the Node [`--import`](https://nodejs.org/api/cli.html#--importmodule) CLI flag when starting the application. + +Internally, Sentry uses a specific ESM loader hook "[import-in-the-middle/hook.mjs](https://www.npmjs.com/package/import-in-the-middle)" which is +automatically added when you add the Sentry server-side config file with `--import`. This will automatically instrument all modules in your application. + +## Setup Sentry Server Config + +As described above, there are some prerequisites for adding Sentry to a Nuxt project in ESM syntax: + +1. The possibility to add the node `--import` CLI flag. +2. Knowing the correct path to your Sentry server config file within your deployment environment (to add the path to the `--import` CLI flag). +3. The `hook.mjs` file is available under `node_modules/import-in-the-middle/hook.mjs` wherever your server-side code is executed. +4. Running Node.js version 18.19.0 or higher (support for `--import`). + +### Adding the `--import` CLI flag + +You can either add the flag directly to the `node` command when starting the application: + +```bash +node --import ./path/to/sentry-server-config.mjs ./path/to/index.mjs +``` + +or use the `NODE_OPTIONS` environment variable: + +```bash +NODE_OPTIONS="--import ./path/to/sentry-server-config.mjs" node ./path/to/index.mjs +``` + +If modifying the `node` command is not possible, you can also add the `NODE_OPTIONS` environment variable wherever you can set environment variables within your deployment environment. +Make sure that this variable is only available during server runtime (not during build time). + +### `import-in-the-middle/hook.mjs` is available + +Usually, the file `node_modules/import-in-the-middle/hook.mjs` is automatically available when installing dependencies. +However, some deployment providers use custom node bundlers that might not include all `node_modules` in order to save storage. +This is often done by tracing the node files and only including the necessary dependencies. Since Sentry has to include the `hook.mjs` file internally with `module.register()` it might not be discovered by some bundlers and therefore not included. +If you get a warning that the `hook.mjs` file is not found, please report this in [the Sentry JS GitHub repo](https://github.com/getsentry/sentry-javascript/issues) or file an issue at your deployment provider. + +## Setup other environment variables + +In case you are using environment variables in your project to set up Sentry don't forget to also add them inside your deployment environment: + +```bash +SENTRY_DSN="___PUBLIC_DSN___" +SENTRY_AUTH_TOKEN="___ORG_AUTH_TOKEN___" +``` + + + +## Troubleshooting + +As all packages are wrapped under the hood by [import-in-the-middle](https://www.npmjs.com/package/import-in-the-middle), you might run into issues with certain packages. If you run into a problem with a package, you can skip instrumentation for it by configuring `registerEsmLoaderHooks` in your `Sentry.init()` config. + +```javascript {tabTitle:ESM} {filename: instrument.mjs} +import * as Sentry from "@sentry/node"; + +Sentry.init({ + dsn: "___PUBLIC_DSN___", + registerEsmLoaderHooks: { + // Provide a list of package names to exclude from instrumentation + exclude: ["package-name"], + }, +}); +``` diff --git a/docs/platforms/javascript/common/deployment-provider-setup/index.mdx b/docs/platforms/javascript/common/deployment-provider-setup/index.mdx new file mode 100644 index 00000000000000..1f668c616c1f99 --- /dev/null +++ b/docs/platforms/javascript/common/deployment-provider-setup/index.mdx @@ -0,0 +1,9 @@ +--- +title: Deployment Provider Setup +sidebar_order: 2 +description: "Review our alternate installation methods." +supported: + - javascript.nuxt +--- + + diff --git a/docs/platforms/javascript/common/deployment-provider-setup/netlify.mdx b/docs/platforms/javascript/common/deployment-provider-setup/netlify.mdx new file mode 100644 index 00000000000000..98563383268e90 --- /dev/null +++ b/docs/platforms/javascript/common/deployment-provider-setup/netlify.mdx @@ -0,0 +1,50 @@ +--- +title: Netlify +sidebar_order: 10 +description: "Learn about running Sentry when deploying to Netlify." +supported: + - javascript.nuxt +--- + + + Deploying on Netlify is still experimental. Currently, not all Sentry features are supported on the server-side. Only your frontend will be monitored. + + + + Before approaching the steps below, read the general documentation around setting up Sentry on a deployment provider to get quick general overview of the process. + This page only shows Netlify-specific steps. + + +## Approach 1: Adding the `--import` flag + + + The server-side of Nuxt is deployed as a Netlify Function. So make sure to scope the environment variable `NODE_OPTIONS` to "Functions". + The path to the function is depending on your setup. When building the preset locally, the file is available at: `.netlify/functions-internal/server/sentry.server.config.mjs`. + + + The docs for this are still vague and we will update them as soon as we know more about which exact path to use for the `--import` flag. + + + + + + +## Approach 2: Enable `experimental_basicServerTracing` + + +Enabling `experimental_basicServerTracing` can be used when adding the node option `--import` does not work. This however only comes with limited tracing functionality because Sentry server config is not **pre**loaded with `--import`. + + + Enabling this option will automatically import the Sentry server config at the top of the server entry file (server entry: `.netlify/functions-internal/server/server.mjs`). + + ```javascript {tabTitle: Nuxt Config} {filename: nuxt.config.ts} + export default defineNuxtConfig({ + sentry: { + // ... other options + experimental_basicServerTracing: true + }, + }) + ``` + + + diff --git a/includes/common-imgs/img/netlify-env-variable.png b/includes/common-imgs/img/netlify-env-variable.png new file mode 100644 index 0000000000000000000000000000000000000000..6aca919ff9d71140f11abb245aa074a499c12520 GIT binary patch literal 76774 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

5`Oa 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 Date: Fri, 4 Oct 2024 14:44:27 +0200 Subject: [PATCH 2/3] change order --- docs/platforms/javascript/common/best-practices/index.mdx | 2 +- docs/platforms/javascript/common/data-management/index.mdx | 2 +- .../javascript/common/deployment-provider-setup/index.mdx | 2 +- docs/platforms/javascript/common/enriching-events/index.mdx | 2 +- docs/platforms/javascript/common/usage/index.mdx | 2 +- docs/platforms/javascript/guides/nuxt/features/index.mdx | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/platforms/javascript/common/best-practices/index.mdx b/docs/platforms/javascript/common/best-practices/index.mdx index 71f60ed3a60a61..4d8f3ee8fcc163 100644 --- a/docs/platforms/javascript/common/best-practices/index.mdx +++ b/docs/platforms/javascript/common/best-practices/index.mdx @@ -1,7 +1,7 @@ --- title: Special Use Cases description: "Learn how to set up Sentry for several specific use cases with these best practice guides." -sidebar_order: 6 +sidebar_order: 7 notSupported: - javascript.node - javascript.aws-lambda diff --git a/docs/platforms/javascript/common/data-management/index.mdx b/docs/platforms/javascript/common/data-management/index.mdx index ff505660535760..353f0ebb670954 100644 --- a/docs/platforms/javascript/common/data-management/index.mdx +++ b/docs/platforms/javascript/common/data-management/index.mdx @@ -1,7 +1,7 @@ --- title: Data Management description: Learn about different ways to scrub data within your SDK before it gets sent to Sentry. -sidebar_order: 7 +sidebar_order: 8 --- diff --git a/docs/platforms/javascript/common/deployment-provider-setup/index.mdx b/docs/platforms/javascript/common/deployment-provider-setup/index.mdx index 1f668c616c1f99..6a8d490b532eb6 100644 --- a/docs/platforms/javascript/common/deployment-provider-setup/index.mdx +++ b/docs/platforms/javascript/common/deployment-provider-setup/index.mdx @@ -1,6 +1,6 @@ --- title: Deployment Provider Setup -sidebar_order: 2 +sidebar_order: 4 description: "Review our alternate installation methods." supported: - javascript.nuxt diff --git a/docs/platforms/javascript/common/enriching-events/index.mdx b/docs/platforms/javascript/common/enriching-events/index.mdx index a96a76ffdf3d08..217e4e29bce68e 100644 --- a/docs/platforms/javascript/common/enriching-events/index.mdx +++ b/docs/platforms/javascript/common/enriching-events/index.mdx @@ -1,7 +1,7 @@ --- title: Enriching Events description: Add additional context to your events to make them easier to debug. -sidebar_order: 5 +sidebar_order: 6 --- diff --git a/docs/platforms/javascript/common/usage/index.mdx b/docs/platforms/javascript/common/usage/index.mdx index 3858ed86c8b35b..59c6c6bfd197d4 100644 --- a/docs/platforms/javascript/common/usage/index.mdx +++ b/docs/platforms/javascript/common/usage/index.mdx @@ -1,7 +1,7 @@ --- title: Capturing Errors and Events description: "Learn how to use the SDK to manually capture errors and other events." -sidebar_order: 4 +sidebar_order: 5 --- Sentry's SDK hooks into your runtime environment and automatically reports errors, uncaught exceptions, and unhandled rejections as well as other types of errors depending on the platform. diff --git a/docs/platforms/javascript/guides/nuxt/features/index.mdx b/docs/platforms/javascript/guides/nuxt/features/index.mdx index 45d97a177d706a..5ceac63ace515a 100644 --- a/docs/platforms/javascript/guides/nuxt/features/index.mdx +++ b/docs/platforms/javascript/guides/nuxt/features/index.mdx @@ -1,7 +1,7 @@ --- title: Vue Features description: "Learn how to exposes features for first class integration with Vue with Sentry's Nuxt SDK." -sidebar_order: 4 +sidebar_order: 5 --- The Sentry Nuxt SDK offers Vue-specific features for first class integration with the framework. From 39bf44b373ec388ec8c63725787c2a3ca4f3444b Mon Sep 17 00:00:00 2001 From: s1gr1d Date: Mon, 7 Oct 2024 13:17:44 +0200 Subject: [PATCH 3/3] add information regarding nft resolution --- .../deployment-provider-setup/general.mdx | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/platforms/javascript/common/deployment-provider-setup/general.mdx b/docs/platforms/javascript/common/deployment-provider-setup/general.mdx index a5c34eedb5d416..572fbc39c9626b 100644 --- a/docs/platforms/javascript/common/deployment-provider-setup/general.mdx +++ b/docs/platforms/javascript/common/deployment-provider-setup/general.mdx @@ -50,6 +50,25 @@ However, some deployment providers use custom node bundlers that might not inclu This is often done by tracing the node files and only including the necessary dependencies. Since Sentry has to include the `hook.mjs` file internally with `module.register()` it might not be discovered by some bundlers and therefore not included. If you get a warning that the `hook.mjs` file is not found, please report this in [the Sentry JS GitHub repo](https://github.com/getsentry/sentry-javascript/issues) or file an issue at your deployment provider. +Nitro (which is used by Nuxt and SolidStart on the server side) uses [`@vercel/nft`](https://github.com/vercel/nft) during the build. `@vercel/nft` includes files that are added with `module.register()` from version 0.27.4 onwards. +In case you get a runtime error along the lines `Cannot find module '/node_modules/import-in-the-middle/hook.mjs'`, make sure to add a resolution (yarn) or an override (npm/pnpm) for `@vercel/nft`: + +```json {tabTitle:yarn} {filename: package.json} +{ + "resolutions": { + "@vercel/nft": "^0.27.4" + } +} +``` + +```json {tabTitle:npm/pnpm} {filename: package.json} +{ + "overrides": { + "@vercel/nft": "^0.27.4" + } +} +``` + ## Setup other environment variables In case you are using environment variables in your project to set up Sentry don't forget to also add them inside your deployment environment: @@ -61,7 +80,7 @@ SENTRY_AUTH_TOKEN="___ORG_AUTH_TOKEN___" -## Troubleshooting +## Exclude modules from import-in-the-middle As all packages are wrapped under the hood by [import-in-the-middle](https://www.npmjs.com/package/import-in-the-middle), you might run into issues with certain packages. If you run into a problem with a package, you can skip instrumentation for it by configuring `registerEsmLoaderHooks` in your `Sentry.init()` config.