Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 8 additions & 112 deletions packages/nitro/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,126 +4,22 @@
</a>
</p>

> NOTICE: This package is in beta state and may be subject to breaking changes.

# Official Sentry SDK for Nitro

[![npm version](https://img.shields.io/npm/v/@sentry/nitro.svg)](https://www.npmjs.com/package/@sentry/nitro)
[![npm dm](https://img.shields.io/npm/dm/@sentry/nitro.svg)](https://www.npmjs.com/package/@sentry/nitro)
[![npm dt](https://img.shields.io/npm/dt/@sentry/nitro.svg)](https://www.npmjs.com/package/@sentry/nitro)

## Links

- [Official Nitro SDK Docs](https://docs.sentry.io/platforms/javascript/guides/nitro/)
- [Example Nitro app](https://github.com/getsentry/sentry-javascript/tree/develop/dev-packages/e2e-tests/test-applications/nitro-3)

## Compatibility

The minimum supported version of Nitro is `3.0.260415-beta`.

## General

This package is a wrapper around `@sentry/node` with added instrumentation for Nitro's features like:

- HTTP handlers and error capturing.
- [Middleware instrumentation](https://nitro.build/guide/routing#middleware).
<!-- - [Database instrumentation](https://nitro.build/guide/database). -->
<!-- - [KV Storage](https://nitro.build/guide/storage) and [Cache](https://nitro.build/guide/cache) instrumentation. -->

## Manual Setup

### 1. Prerequisites & Installation

1. Install the Sentry Nitro SDK:

```bash
# Using npm
npm install @sentry/nitro

# Using yarn
yarn add @sentry/nitro

# Using pnpm
pnpm add @sentry/nitro
```

### 2. Build-Time Nitro Config Setup

1. Import `withSentryConfig` from `@sentry/nitro` and call it with your Nitro config.

#### In `nitro.config.ts`
The official Sentry SDK for monitoring Nitro applications.

If you are using a dedicated `nitro.config.ts` file, you can import `withSentryConfig` from `@sentry/nitro` and call it with your Nitro config.

```javascript
import { defineNitroConfig } from 'nitro/config';
import { withSentryConfig } from '@sentry/nitro';

const config = defineNitroConfig({
// ...
});

export default withSentryConfig(config, {
// Sentry Build Options
});
```

#### In `vite.config.ts`

If you are using Nitro as a Vite plugin, you can import `withSentryConfig` from `@sentry/nitro` and call it with your Nitro config.

```ts
import { defineConfig } from 'vite';
import { nitro } from 'nitro/vite';
import { withSentryConfig } from '@sentry/nitro';

export default defineConfig({
plugins: [nitro()],
nitro: withSentryConfig(
{
// Nitro options
},
{
// Sentry Build Options
},
),
});
```

### 3. Sentry Config Setup

Create an `instrument.mjs` file in your project root to initialize the Sentry SDK:

```javascript
import * as Sentry from '@sentry/nitro';

Sentry.init({
dsn: '__YOUR_DSN__',
tracesSampleRate: 1.0,
});
```

Then use `--import` in `NODE_OPTIONS` to load the instrumentation before your app code:

```bash
NODE_OPTIONS='--import ./instrument.mjs' npx nitro dev
```

This works with any Nitro command (`nitro dev`, `nitro preview`, or a production start script).

## Uploading Source Maps
> NOTICE: This package is in beta state and may be subject to breaking changes.

The `withSentryConfig` function automatically configures source map uploading when the `authToken`, `org`, and `project`
options are provided:
## Documentation

```javascript
export default withSentryConfig(config, {
org: 'your-sentry-org',
project: 'your-sentry-project',
authToken: process.env.SENTRY_AUTH_TOKEN,
});
```
- [Getting started](https://docs.sentry.io/platforms/javascript/guides/nitro/)
- [Configuration](https://docs.sentry.io/platforms/javascript/guides/nitro/configuration/)

## Troubleshoot
## Support

If you encounter any issues with error tracking or integrations, refer to the official [Sentry Nitro SDK documentation](https://docs.sentry.io/platforms/javascript/guides/nitro/). If the documentation does not provide the necessary information, consider opening an issue on GitHub.
- [Report a bug](https://github.com/getsentry/sentry-javascript/issues/new/choose)
- [Contributing](https://github.com/getsentry/sentry-javascript/blob/develop/CONTRIBUTING.md)
Loading